ajax请求报错调试

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,等

猜你喜欢

转载自blog.csdn.net/juligang320/article/details/78819119
今日推荐