关于ajax请求一直进error的坑

测试环境发现了一个bug,接口在请求成功之后依然会弹出error()方法中的消息,网上试了各种方法比如去掉dataType,打印error参数结果都不好使。

最后发现ajax请求设置了async: false同步属性,去掉这个参数就好了,代码如下

$.ajax({

                            type: "post", // 请求方式

                            url: "<%=ucenterUrl%><%=EncryptLink.encryptLink("/注册接口",-1)%>",

                            data: JSON.stringify({"phone": username, "password": password, "parentId": "<%=parentID%>", "code": checkcode, "registerName": name}),

                            //async: false, // 是否异步注释掉这行代码为了接口请求一直进error的问题

                            timeout: 20000, // 超时时间:3秒

                            dataType: "json",

                            contentType: "application/json; charset=utf-8",

                            // 请求成功后的回调函数 data为json格式

                            success: function (data) {

                                try {

                                    dataObj = eval("(" + data + ")");//转换为json对象

                                } catch (e) {

                                    dataObj = data;

                                }

                                if (dataObj.status == "200") {

                                    $.ajax({

                                        type: "post",

                                        url: "<%=ucenterUrl%><%=EncryptLink.encryptLink("/登录接口",-1)%>",

                                        data: JSON.stringify({"phone": username, "password": password, "userId": "<%=userId%>"}),

                                        //async: false, // 是否异步

                                        timeout: 20000, // 超时时间:3秒

                                        dataType: "json",

                                        contentType: "application/json; charset=utf-8",

                                        success: function (data) {

                                            try {

                                                dataObj = eval("(" + data + ")");//转换为json对象

                                            } catch (e) {

                                                dataObj = data;

                                            }

                                            if (dataObj.status == "200") {

                                                $("#circlecon").hide();

                                                var userId = dataObj.body.id;

                                                var token = dataObj.body.token;

                                                $.cookie("userId", userId);

                                                name = encodeURIComponent(name);

                                                var returnHref = encodeURIComponent("<%=returnHref%>");

                                                // 修改注册页面跳转路径

                                                window.location.href = encodeURI("<%=path%>/html5/loginNew/authentication.jsp?userId=" + userId + "&activityId=<%=activityId%>&name=" + name + "&isReg=" + isReg + "&activityType=" + activityType+"&returnHref="+returnHref+"&token="+token);//跳转认证页面

                                            }

                                            if (dataObj.status == "500") {

                                                $("#circlecon").hide();

                                                //$("#login").attr("href", "javascript:login()");

                                                $("#logmsg").html(dataObj.message);

                                                $("#logmsg").slideDown();

                                            }

                                        },

                                        error: function () {

                                            // ajax请求出错执行的内容

                                            $("#circlecon").hide();

                                            alert('请求超时,请稍后重试!')

                                        }

                                    });

                                }

                                if (dataObj.status == "500") {

                                    $("#circlecon").hide();

                                    $("#regMsg").html(dataObj.message);

                                    $("#regMsg").slideDown();

                                }

                            },

                            // 请求出错的处理

                            error: function () {

                                $("#circlecon").hide();

                                alert('请求超时,请稍后重试!')

                            }

                        });

你可能感兴趣的:(关于ajax请求一直进error的坑)