javascript - Ajax调试问题
天蓬老师
天蓬老师 2017-04-10 15:46:01
[JavaScript讨论组]

success无法调用问题

首先是我写的Ajax请求的函数
写的是对的,数据成功发送,也返回了我要的数据
但是在success中断了n个点都停不下来

 function UpdateBookCount(bid, count) {
     $.ajax({
         //===请求地址===
         url: "ashx/UpdataBookCount.ashx",
         //===请求设置===
         data: { bid: bid, count: count },//传输数据,可以是字符串,也可以是json
         success: function (data) {//请求成功时的回调函数,success(data, textStatus, jqXHR)
             switch (data.statecode) {
                 //statecode
                 //1-----成功
                 //2-----异常
                 //3-----用户未登入
                 case 1:
                     console.log("ok");
                     break;
                 case 2:
                     alert("后端异常");
                     break;
                 case 3:
                     location.href = "/FontPage/UserLogin.ashx";
                     break;

                 default:
             }
         },
         type: "post",//请求方法
         dataType: "json",//返回的数据类型
         cache: false,//是否使用缓存,(默认: true,dataType为script和jsonp时默认为false)  
         contentType: "application/x-www-form-urlencoded"//发送信息至服务器时内容编码类型,这里是默认值
     })
 }

这是调用Ajax请求函数的一个地方

 $(".imgJia").click(function () {
     var count = $(this).siblings(".txtCount").val();
     count++;
     $(this).siblings(".txtCount").val(count);
     //计算下总价
     CountTotalMoney();
     //数据库更新
     var bid = $(this).siblings(".bid").val();
     UpdateBookCount(bid, count);
 });

我再另一个页面也写过几乎一摸一样的Ajax函数(url,data不同),但是它却能断点成功.对了还有这个页面的Ajax函数是写在一个按钮点击事件中的,不知道是不是这个原因

这是另一个页面的Ajax

function BtnBuyClickEvenBind() {
    $("#btnBuyBook").click(function () {
        $.ajax({
            //===请求地址===
            url: "ashx/BuyBook.ashx",
            //===请求设置===
            data: { id: "<%=BookModel.Bid%>",price:"<%=BookModel.PriceNew%>",lastUrl:location.href },
            success: function (data) {//请求成功时的回调函数,success(data, textStatus, jqXHR)
                switch (data.stateCode) {

                    //1-----添加成功
                    //2-----用户未登入
                    //3-----未知错误
                    case 1:
                        alert("ok");
                        break;
                    case 2:
                        location.href="/FontPage/UserLogin.aspx";
                        break;
                    case 3:
                        alert("未知错误");
                        break;
                }
            },
            type: "post",//请求方法
            dataType: "json",//返回的数据类型
            cache: false,//是否使用缓存,(默认: true,dataType为script和jsonp时默认为false)  
            contentType: "application/x-www-form-urlencoded"//发送信息至服务器时内容编码类型,这里是默认值
        });
        return false;
    });
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
天蓬老师

首先你要确定updateBookCount能够进入,然后看开发者工具的Network标签页是否真的发送了AJAX请求。

然后如果success没进入很可能是发送错误了,比如服务器返回了4xx5xx状态码。这在Network标签页可以看到。另外在$.ajax里除了success字段,也设置一个error字段,用来监听发生错误时的情况。

2015-9-4 23:20 更新

我看到你设置了dataType: "json",却没添加error。即使服务器返回了200但JSON.parse抛出了异常,也会进入error处理函数。最好填一个error,即使不给用户看也把它log出来,能减轻DEBUG的痛苦。

大家讲道理

imgjia是按钮吗,按钮有没设置type="button"?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号