Home >Web Front-end >Front-end Q&A >What are the causes of ajax error?

What are the causes of ajax error?

青灯夜游
青灯夜游Original
2022-01-19 14:47:1415621browse

Causes of ajax error: 1. The dataType type is wrong; 2. The json format is wrong; 3. There is a problem with the synchronization and asynchronous setting of the async request; 4. The data parameter value is not set; 5. There is a problem with the encoding format of the parameters passed ; 6. There are Chinese characters in the URL path.

What are the causes of ajax error?

The operating environment of this tutorial: windows7 system, jquery1.10.2 version, Dell G3 computer.

A standard jquery ajax code:

$.ajax({
         type: 'POST',
         url: 'getSecondClassification',
         data: {"sort2": sort2,"sort3":sort3)},
         dataType: 'json',
  //contentType:"utf-8",发送请求的编码方式
  //contentType都是默认的值:application/x-www-form-urlencoded
 
  contentType: 'application/json',
  data: JSON.stringify({a: [{b:1, a:1}]})
 
  success: function (sort) {
    $("#noneSelect").remove();
    var optionstring = "";
    for (var i in sort) {
                     optionstring += "<option value=\"" + sort[i].classId + "\" >" + sort[i].className + "</option>";
               }
               $("#secondtype").html(optionstring);
    $("#build").removeAttr("disabled");
  },
 error: function (XMLHttpRequest, textStatus, errorThrown) {
    //              $("#p_test").innerHTML = "there is something wrong!";
    //                alert(XMLHttpRequest.status);
    //                alert(XMLHttpRequest.readyState);
    //                alert(textStatus);
         }
   });

Any error will jump to the error function

Example Some error reasons:

1. dataType error

Type error: If the dataType type returned by the background is inconsistent with the one written by the front desk, error# will be jumped.

## Format error: After jquery1.4, the format requirements for json are very strict, and json format errors will also jump to error.{"test":1} Pay attention to the format

Sometimes, there is no need to return In the case of a value, follow the template format and set the dataType: "json" parameter; at this time, when the value passed by ajax is correct, there will be a special situation where an error is reported in the 200 return success status.

2. Async request synchronization and asynchronous issues

Async defaults to true (asynchronous request). If you want to execute another Ajax after it is executed, For Ajax, you need to set async=false

For example, you use a post request to pass a value to the background of another page, but your ajax has already been executed as soon as the page is loaded, and the value reception is completed in the background. , the data cannot be requested at this time, so you can consider changing the ajax request to synchronous try.

3. Data must be written

If the data is empty, you must pass "{}"; otherwise, the returned data will be in xml format. And prompts parsererror.data:"{}"

The exception of parsererror is also related to the Header type. and encoding header('Content-type: text/html;

charset=utf8');

4. The parameters passed

must be

Encoding formats supported by ajax

5. URL path problem

The path cannot have Chinese characters

Use error to debug error messages:

You can alert it to see what went wrong

Specific parameters:

XMLHttpRequest:XMLHttpRequest.readyState: 状态码的意思
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

XMLHttpRequest: XMLHttpRequest.status:

textStatus: Error reason

errorThrown: (optional) captured error object

[Related tutorial recommendations:

AJAX video tutorial]

The above is the detailed content of What are the causes of ajax error?. 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