Jquery使用ajax的success回调函数不执行,但是能正常请求

        好久没有写代码了,今天使用 jq 的时候发现success回调函数怎么都不执行。

        而且令人不解的是,后端居然都成功接收请求,一切正常。

$.ajax({
              type: "post",
              url: "/login/login",
                dataType : "json",
                contentType : "application/json",
                xhrFields: {withCredentials: true},
                withCredentials: true,
                data: JSON.stringify(opt),
              success: function (d) {
                console.log("执行了提交!");
                console.log(d);
                if(d){
                    location.href="../main/index.html";
                }else{
                    alert("密码错误!请重新输入!");
                }
              }
        });

看了网上很多回答,大概有这几点:

  • 将dataType的值从json改为txt
  • 将dataType属性删除
  • 将error的回调函数补上
  • ...

我都试过了,最后可惜的是都不成功。最离谱的是将 error 的回调函数写上后,居然 error 和 success 回调函数都没有成功的执行。

因为我之前一直都是这样使用的,也没出过今天这种问题。最后发现和以前写的项目唯一不同之处居然是使用的 jquery框架 的版本。

我曾经用的是 jQuery v1.10.2

这次使用的是 jQuery 最新版本

最终解决:更换回曾经 jquery 的版本

你可能感兴趣的:(html,jquery,ajax,javascript)