前端调错(一)---ajax返回数据成功,却进入error方法

 

前端调错(一)---ajax返回数据成功,却进入error方法

 

         今天同事在调ajax的时候遇到了一个问题,明明ajax成功的返回了数据,但是每次执行的时候都进入error方法。

 

         那么如何才能找到问题的原因呢?如下

 function loadPic(){
$.ajax({
            url: "courseRotation/loadPic",
            async: false,
            dataType: "json",
            data: {
            courseId:$("#courseId").val(), 
            },
            success: function (data) {
                   alert(data);
error:function(data, XMLHttpRequest, textStatus, errorThrown){
alert(data);
         alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
        });
}


         通过error里面的处理能够将错误信息,以及传回的信息都显示出来。如下图

        

         同时错误原因是数据类型错误,改成“text”之后就没有问题了。写这篇博客主要是想告诉大家以后出现类似的错误如何快速的定位错误,并有针对的去解决错误。

已标记关键词 清除标记
服务器端返回字符串类型的数据正常。前端代码如下: ``` $('#doc-vld-msg').validator({ submit: function () { var formValidity = this.isFormValid(); if (formValidity) { var progress = $.AMUI.progress; $.ajax({ type: "POST", url: "save.ashx", cache: "false", dataType: "text", data: { BicycleID: $("#doc-vld-name-2-1").val(), University: $("#doc-select-1-1").val(), Password: $("#doc-vld-age-2-1").val(), }, beforeSend: function () { progress.start(); }, success: function (result) { alert(result); window.location.href = "index.html"; }, error: function (jqXHR) { alert("发生误:" + jqXHR.status); }, complete: function () { progress.done(); } }); } else { alert("未完成验证!"); } } }); ``` 先是做一个前台控件的验证,验证通过就发送ajax请求,我在浏览器和后台都看过是OK 200,但就是不执行success,也不执行error,我试了好多办法,发现,在if最后加一个alert()就可以执行success或者error了,代码如下: ``` $('#doc-vld-msg').validator({ submit: function () { var formValidity = this.isFormValid(); if (formValidity) { var progress = $.AMUI.progress; $.ajax({ type: "POST", url: "save.ashx", cache: "false", dataType: "text", data: { BicycleID: $("#doc-vld-name-2-1").val(), University: $("#doc-select-1-1").val(), Password: $("#doc-vld-age-2-1").val(), Random: getRandom(1000) }, beforeSend: function () { progress.start(); }, success: function (result) { alert(result); window.location.href = "index.html"; }, error: function (jqXHR) { alert("发生误:" + jqXHR.status); }, complete: function () { progress.done(); } }); alert("数据已提交,正在查询是否能成功...");//就是添加的这一句 } else { alert("未完成验证!"); } } }); ``` 但是问题来了,他是先执行alert("数据已提交,正在查询是否能成功...");再执行success或者error,这是为什么?然后还有为什么我不添加这一句就不执行呢? 大神们,这是什么原因?我是个菜鸟,望大神解答一下。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页