ajax请求格式如下
$.ajax({
url: Url,
type: "post",
dataType: "json",
data: params,
success: function (text) {
layer.msg("保存成功!");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
layer.msg("保存失败, 错误码:" + textStatus);
layer.msg(XMLHttpRequest.status);
layer.msg(XMLHttpRequest.readyState);
layer.msg(textStatus);
}
});
一、error:function (XMLHttpRequest, textStatus, errorThrown)
{
}
(默认: 自动判断 (xml 或 html)) 请求失败时调用时间。参数有以下三个:XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是”timeout”, “error”, “notmodified” 和 “parsererror”。
textStatus:
“timeout”, “error”, “notmodified” 和 “parsererror”。
二、error事件返回的第一个参数XMLHttpRequest有一些有用的信息:
XMLHttpRequest.readyState:
状态码
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了
三、data:”{}”, data为空也一定要传”{}”;不然返回的是xml格式的。并提示parsererror.
四、parsererror的异常和Header 类型也有关系。及编码header(‘Content-type: text/html; charset=utf8’);
详细可参考一下文章:
https://www.cnblogs.com/Horsonce/p/7911519.html
此文着重说明一种报错:
textStatus:”error”
readyState:0
原因:当发送ajax请求之后,请求未完成,已经切换页面,等于请求方已经丢失,会产生此错误,问题较难发现
解决办法:发送请求之后,如要切换页面,可以切换代码放在success回调方法里面,或者使用下面的方式
setTimeout(function () {
window.location.href = "url";
},1000);
如果有其他的报错,请检查返回值得类型,或者ajax请求地址对应方法是否使用了正确的标签。如返回对象要加@ResponseBody,等