When learning ajax, you will encounter the problem of using ajax(). Next, we will introduce the specific use of ajax() in detail.
Example
Load a piece of text through AJAX:
jQuery code:
$(document).ready(function(){ $("#b01").click(function(){ htmlobj=$.ajax({url:"/jquery/test1.txt",async:false}); $("#myDiv").html(htmlobj.responseText); }); });
HTML code:
<div id="myDiv"><h2>Let AJAX change this text</h2></div> <button id="b01" type="button">Change Content</button>
Definition and usage
The ajax() method loads remote data through HTTP requests.
This method is the underlying AJAX implementation of jQuery. For simple and easy-to-use high-level implementations, see $.get, $.post, etc. $.ajax() returns the XMLHttpRequest object it created. In most cases you won't need to manipulate this function directly unless you need to manipulate less commonly used options for more flexibility.
In the simplest case, $.ajax() can be used directly without any parameters.
Note: All options can be set globally through the $.ajaxSetup() function.
Syntax
jQuery.ajax([settings])
Parameters
Description
settings
Optional. A collection of key-value pairs used to configure Ajax requests.
You can set the default value of any option through $.ajaxSetup().
Parameters
options
Type: Object
Optional. AJAX request settings. All options are optional.
async
Type: Boolean
Default value: true. By default, all requests are asynchronous. If you need to send synchronous requests, set this option to false.
Note that synchronous requests will lock the browser, and other user operations must wait for the request to be completed before they can be executed.
beforeSend(XHR)
Type: Function
Function that can modify the XMLHttpRequest object before sending the request, such as adding custom HTTP headers.
The XMLHttpRequest object is the only parameter.
This is an Ajax event. If false is returned, this ajax request can be canceled.
cache
Type: Boolean
Default value: true, default is false when dataType is script and jsonp. Set to false to not cache this page.
New features in jQuery 1.2.
complete(XHR, TS)
Type: Function
After the request is completedCallback function (called after the request is successful or failed).
Parameters: XMLHttpRequest object and a string describing the request type.
This is an Ajax event.
contentType
Type: String
Default value: "application/x-www-form-urlencoded". Content encoding type when sending information to the server.
The default value is suitable for most situations. If you explicitly pass a content-type to $.ajax() then it will definitely be sent to the server (even if there is no data to send).
context
Type: Object
This object is used to set the context of Ajax-related callback functions. In other words, let this in the callback function point to this object (if this parameter is not set, then this will point to the options parameter passed when calling this AJAX request). For example, specifying a DOM element as the context parameter will set the context of the success callback function to this DOM element.
Like this:
$.ajax({ url: "test.html", context: document.body, success: function(){ $(this).addClass("done"); }});
data
Type: String
The data sent to the server. Will be automatically converted to request string format. Appended to the URL in GET requests. See the processData option description to disable this automatic conversion. Must be in Key/Value format. If it is an array, jQuery will automatically assign the same name to different values. For example, {foo:["bar1", "bar2"]} is converted to '&foo=bar1&foo=bar2'.
dataFilter
Type: Function
Function for preprocessing the original data returned by Ajax. Provide two parameters, data and type: data is the original data returned by Ajax, and type is the dataType parameter provided when calling jQuery.ajax. The value returned by the function will be further processed by jQuery.
dataType
Type: String
The data type expected to be returned by the server. If not specified, jQuery will automatically make intelligent judgments based on the MIME information of the HTTP package. For example, the XML MIME type is recognized as XML. In 1.4, JSON will generate a JavaScript object, and script will execute the script. The data returned by the server will then be parsed based on this value and passed to the callback function. Available values:
"xml": Returns an XML document that can be processed with jQuery.
"html": Returns plain text HTML information; the included script tag will be executed when inserted into the dom.
"script": Returns plain text JavaScript code. Results are not cached automatically. Unless the "cache" parameter is set. Note: When making remote requests (not under the same domain), all POST requests will be converted into GET requests. (Because the DOM script tag will be used to load)
"json": Returns JSON data.
"jsonp": JSONP format. When calling a function using JSONP form, such as "myurl?callback=?" jQuery will automatically replace ? with the correct function name to execute the callback function.
"text": Returns a plain text string
error
Type: Function
Default value: Automatic judgment (xml or html). This function is called when the request fails.
has the following three parameters: XMLHttpRequest object, error message, (optional) captured exception object.
If an error occurs, the error message (the second parameter) may be "timeout", "error", "notmodified" and "parsererror" in addition to null.
This is an Ajax event.
global
Type: Boolean
Whether to trigger the global AJAX event. Default value: true. Setting to false will not trigger global AJAX events such as ajaxStart or ajaxStop which can be used to control different Ajax events.
ifModified
Type: Boolean
Get new data only when the server data changes. Default value: false. Use HTTP packet Last-Modified header information to determine. As of jQuery 1.4, it also checks the server-specified 'etag' to make sure the data has not been modified.
jsonp
Type: String
Override the name of the callback function in a jsonp request. This value is used to replace the "callback" part of the URL parameter in a GET or POST request such as {jsonp:'onJsonPLoad'} which will cause "onJsonPLoad=?" to be passed to the server.
jsonpCallback
Type: String
Specify a callback function name for the jsonp request. This value will be used instead of the random function name automatically generated by jQuery. This is mainly used to allow jQuery to generate unique function names so that it is easier to manage requests and provide callback functions and error handling. You can also specify this callback function name when you want the browser to cache GET requests.
password
Type: String
Password used to respond to HTTP access authentication requests
processData
Type: Boolean
Default value: true. By default, the data passed in through the data option, if it is an object (technically speaking, as long as it is not a string), will be processed and converted into a query string to match the default content type "application/x-www-form-urlencoded" ". Set to false if you want to send DOM tree information or other information that you don't want to convert.
scriptCharset
Type: String
Only when the dataType is "jsonp" or "script" when requested, and the type is "GET" will it be used to force the charset to be modified. Usually only used when the local and remote content encodings are different.
success
Type: Function
The callback function after the request is successful.
Parameters: Data returned by the server and processed according to the dataType parameter; a string describing the status.
This is an Ajax event.
traditional
Type: Boolean
Set to true if you want to serialize data in the traditional way. Please refer to the jQuery.param method under the Tools category.
timeout
Type: Number
Set the request timeout (milliseconds). This setting overrides the global setting.
type
Type: String
Default value: "GET"). Request method ("POST" or "GET"), default is "GET". Note: Other HTTP request methods such as PUT and DELETE can also be used, but are only supported by some browsers.
url
Type: String
Default value: Current page address. The address to send the request to.
username
Type: String
Username used to respond to HTTP access authentication requests.
xhr
Type: Function
Needs to return an XMLHttpRequest object. The default is ActiveXObject under IE and XMLHttpRequest otherwise. Used to override or provide an enhanced XMLHttpRequest object. This parameter was not available before jQuery 1.3.
Callback function
If you want to process the data obtained by $.ajax(), you need to use the callback function: beforeSend, error, dataFilter, success, complete.
beforeSend
Call before sending the request, and pass in an XMLHttpRequest as a parameter.
error
Called when a request error occurs. Passing in the XMLHttpRequest object, a string describing the error type, and an exception object (if any)
dataFilter
Called after the request is successful. Pass in the returned data and the value of the "dataType" parameter. And must return new data (possibly processed) passed to the success callback function.
success
Called after request. Pass in the returned data and a string containing the success code.
complete
This function is called when the request is completed, regardless of success or failure. Pass in the XMLHttpRequest object, and a string containing a success or error code.
type of data
The$.ajax() function relies on information provided by the server to process the returned data. If the server reports that the returned data is XML, the returned results can be iterated over using normal XML methods or jQuery selectors. If other types are seen, such as HTML, the data is treated as text.
You can also specify other different data processing methods through the dataType option. In addition to simple XML, you can also specify html, json, jsonp, script or text.
Among them, the data returned by text and xml types will not be processed. The data simply passes the responseText or responseHTML attribute of the XMLHttpRequest to the success callback function.
Note: We must ensure that the MIME type reported by the web server matches the dataType we select. For example, in the case of XML, the server must declare text/xml or application/xml to obtain consistent results.
If specified as html type, any embedded JavaScript will be executed before the HTML is returned as a string. Similarly, if the script type is specified, the server-side generated JavaScript will be executed first, and then the script will be returned as text data.
If specified as json type, the obtained data will be parsed as a JavaScript object, and the constructed object will be returned as the result. To achieve this, it first attempts to use JSON.parse(). If the browser does not support it, a function is used to build it.
JSON data is a kind of structured data that can be easily parsed through JavaScript. If the obtained data file is stored on a remote server (with different domain names, that is, cross-domain data acquisition), you need to use the jsonp type. Using this type creates a query string parameter callback=? which is appended to the requested URL. The server should add the callback function name before the JSON data in order to complete a valid JSONP request. If you want to specify the parameter name of the callback function to replace the default callback, you can set the jsonp parameter of $.ajax().
Note: JSONP is an extension of the JSON format. It requires some server-side code to detect and handle query string parameters.
If the script or jsonp type is specified, then when data is received from the server, the