A callback function that is executed if the request succeeds. Required if
dataType
is provided, but can be
null
in that case.
Type:
String
The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html).
The
success
callback function is passed the returned data, which will be an XML root element or a text string depending on the MIME type of the response. It is also passed the text status of the response.
As of jQuery 1.5
, the
success
callback function is also passed a
"jqXHR" object
(in
jQuery 1.4
, it was passed the
XMLHttpRequest
object).
Most implementations will specify a success handler:
This example fetches the requested HTML snippet and inserts it on the page.
Pages fetched with
POST
are never cached, so the
cache
and
ifModified
options in
jQuery.ajaxSetup()
have no effect on these requests.
The jqXHR Object
As of jQuery 1.5
, all of jQuery's Ajax methods return a superset of the
XMLHTTPRequest
object. This jQuery XHR object, or "jqXHR," returned by
$.post()
implements the Promise interface, giving it all the properties, methods, and behavior of a Promise (see
Deferred object
for more information). The
jqXHR.done()
(for success),
jqXHR.fail()
(for error), and
jqXHR.always()
(for completion, whether success or error; added in jQuery 1.6) methods take a function argument that is called when the request terminates. For information about the arguments this function receives, see the
jqXHR Object
section of the
$.ajax()
documentation.
The Promise interface also allows jQuery's Ajax methods, including
$.get()
, to chain multiple
.done()
,
.fail()
, and
.always()
callbacks on a single request, and even to assign these callbacks after the request may have completed. If the request is already complete, the callback is fired immediately.
var jqxhr = $.post( "example.php", function() {
alert( "second success" );
jqxhr.always(function() {
alert( "second finished" );
Deprecation Notice
The
jqXHR.success()
,
jqXHR.error()
, and
jqXHR.complete()
callback methods are
removed as of jQuery 3.0
. You can use
jqXHR.done()
,
jqXHR.fail()
, and
jqXHR.always()
instead.
Additional Notes:
Due to browser security restrictions, most "Ajax" requests are subject to the
same origin policy
; the request can not successfully retrieve data from a different domain, subdomain, port, or protocol.
If a request with jQuery.post() returns an error code, it will fail silently unless the script has also called the global
ajaxError
event. Alternatively, as of jQuery 1.5, the
.error()
method of the
jqXHR
object returned by jQuery.post() is also available for error handling.
Request the test.php page, but ignore the return results.
<title>jQuery.post demo</title>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<form action="/" id="searchForm">
<input type="text" name="s" placeholder="Search...">
<input type="submit" value="Search">
$( "#searchForm" ).on( "submit", function( event ) {
term = $form.find( "input[name='s']" ).val(),
url = $form.attr( "action" );
var posting = $.post( url, { s: term } );
posting.done(function( data ) {
var content = $( data ).find( "#content" );
$( "#result" ).empty().append( content );
Web hosting by Digital Ocean
|
CDN by Fastly
|
Powered by WordPress