This article mainly brings you a perfect solution to the parsererror error under ajax cross-domain request. The editor thinks it is quite good, so I will share it with you now and give it as a reference for everyone. Let’s follow the editor to take a look, I hope it can help everyone.
The parsererror error reported by ajax request is a very broad concept. This error is reported in many cases.
In many cases, even if ajax submits and returns normally
XMLHttpRequest.status=200 (normal response)
XMLHttpRequest.readyState=4 (normal reception)
ajax will also prompt a parseerror error.
This error is mostly caused by bad writing habits or improper grammar.
For ajax errors, please use:
error:function(XMLHttpRequest, textStatus, errorThrown){ $("p").html(textStatus); $("p").append("<br/>"XMLHttpRequest.status); $("p").append("<br/>"XMLHttpRequest.readyState); $("p").append("<br/>"XMLHttpRequest.responseText); }
or:
$("p").ajaxError(function(event,request, settings){ $(this).append("<li>出错页面:" + settings.url + "</li>"); });
Get error-related information for analysis.
textStatus returns null, "timeout", "error", "notmodified" and "parsererror".
The XMLHttpRequest object can use status, readyState, responseText and other attributes to obtain the HTTP code, processing status and text content returned by the server.
In the process of using ajax and related application development, Programs must be written according to standards to reduce the chance of errors.
This standard includes grammar, data format, punctuation, etc.
In an ajax cross request, if data is empty, Please use;
data:"{}",
When the ajax processing server returns Json format data, if the $.parseJSON() method is used,
then The Json data format returned by the server must be written in the standard Json format.
must be surrounded by double quotes instead of single quotes for characters. Values and Boolean types are not used for null.
This is mainly caused by the difference between single quotes and double quotes in some old jquery versions, resulting in error prompts.
In ajax cross-domain requests (jsonp), the data format returned by the server must be:
myCallbackFunction({"id":1,"name":"C#","is_familiar":true});
Please note the semicolon at the end of this function ";" must be added,
Otherwise, if there are multiple ajax requests for the same page, and when the data is not returned, and then other ajax requests are issued,
It is possible that a parsererror error message may appear.
This kind of error is very hidden and is not easy to find during development. It is easily exposed during concurrent testing.
Related recommendations:
Solution to the problem of cookie loss in Ajax cross-domain access_AJAX related
JS implements Ajax cross-domain request flask response content
Detailed examples of the principle of Ajax cross-domain requests
The above is the detailed content of Error solution to parsererror under ajax cross-domain request. For more information, please follow other related articles on the PHP Chinese website!