Home  >  Article  >  Web Front-end  >  What is the basic syntax of ajax? Ajax syntax details

What is the basic syntax of ajax? Ajax syntax details

寻∝梦
寻∝梦Original
2018-09-10 11:38:431840browse

This article mainly talks about the basic grammatical structure of ajax, with examples so that everyone can learn more clearly. Let’s take a look at this article now

Code template:

$.ajax({
             type: "POST",
             url: "/login",
             contentType: 'application/x-www-form-urlencoded;charset=utf-8',
             data: {username:$("#username").val(), password:$("#password").val()},
             dataType: "json",
             success: function(data){
                         console.log(data);
                      },
             error:function(e){
                         console.log(e);
             }
         })

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 self Define 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, the 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

    Callback function after the request is completed (after the request is successful or failed are called).

    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");
          }});

(If you want to see more, go to the PHP Chinese website AJAX Development Manual column to learn)

  • 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 automatically cached. 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 the 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 type Only "GET" will be used to force modification of charset. 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

    If you want to serialize data in the traditional way, then set is true. 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.

Data type

$.ajax() function relies on the 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 selected. 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 instead of 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 handlers 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 appropriate 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.

$.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 ends here (if you want to see more, go to the PHP Chinese website AJAX User Manual column to learn). If you have any questions, you can leave a message below.

The above is the detailed content of What is the basic syntax of ajax? Ajax syntax details. 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