Home  >  Article  >  Web Front-end  >  About jQuery ajax - How to use ajax()

About jQuery ajax - How to use ajax()

jacklove
jackloveOriginal
2018-05-04 14:14:301504browse

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 3f1c4e4b6b16bbbd69b2ee476dc4f83a tag is actually used instead of the XMLHttpRequest object. In this case, $.ajax() no longer returns an XMLHttpRequest object, and event handling functions such as beforeSend are not passed.

Send data to the server

By default, Ajax requests use the GET method. If you want to use the POST method, you can set the type parameter value. This option also affects how the content in the data option is sent to the server.

The data option can contain either a query string, such as key1=value1&key2=value2, or a mapping, such as {key1: 'value1', key2: 'value2'} . If the latter form is used, the data resender is converted into a query string. This processing can also be circumvented by setting the processData option to false. This may not be appropriate if we wish to send an XML object to the server. And in this case, we should also change the value of the contentType option to replace the default application/x-www-form-urlencoded with other suitable MIME types.

Advanced options

The global option is used to prevent responding to registered callback functions, such as .ajaxSend, or ajaxError, and similar methods. This is useful in some cases, such as when the requests sent are very frequent and short, and this can be disabled in ajaxSend.

If the server requires HTTP authentication, the username and password can be set through the username and password options.

Ajax requests are time-limited, so error warnings can be used to improve user experience after they are captured and processed. The request timeout parameter is usually left at its default value, or is set globally through jQuery.ajaxSetup. The timeout option is rarely reset for a specific request.

By default, the request will always be sent, but the browser may retrieve data from its cache. To disable the use of cached results, set the cache parameter to false. If you want to report an error if the data has not changed since the last request, you can set ifModified to true.

scriptCharset allows setting a specific character set for requests with 3f1c4e4b6b16bbbd69b2ee476dc4f83a tags, used for script or jsonp similar data. This is especially useful when the script and page character sets are different.

The first letter of Ajax is the first letter of asynchronous, which means that all operations are parallel, and the order of completion has no relationship. The async parameter of $.ajax() is always set to true, which indicates that other code can still be executed after the request is started. It is strongly discouraged to set this option to false, which means that all requests are no longer asynchronous, which will also cause the browser to lock up.

The

$.ajax function returns the XMLHttpRequest object it creates. Normally jQuery just handles and creates this object internally, but users can also pass a self-created xhr object via the xhr option. The returned object is usually discarded, but still provides a low-level interface for observing and manipulating the request. For example, calling .abort() on an object can suspend a request before it completes.

This article explains in detail the use of ajax() and related knowledge. If you want to learn more ajax knowledge, please pay attention to the php Chinese website.

Related recommendations:

Detailed explanation of jQuery ajax dynamic operation form tr td steps

##jquery ajax makes it adaptive to height when applying iframe

JSONP solves ajax cross-domain problem (with code)

The above is the detailed content of About jQuery ajax - How to use ajax(). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn