首页 新闻 搜索 专区 学院

大家帮帮我,Ajax请求的json格式怎么有时会回调到success可是有时会回调到error函数里去呢?

0
悬赏园豆:20 [已解决问题] 解决于 2014-12-23 23:23

//获取待审核笑话
function GetArticle() {
    $(".btn_review").attr("disabled", "disabled");
    $.ajax({
        url: "/ajax/xx.ashx",
        type: "post",
        dataType: "json",
        async: false,
        data: { action: "Manuscript" },
        beforeSend: function (data) {
            $("#revcontent").html("<p class=\"text-center txt_img\"><img src=\"/images/load.gif\" />正在努力加载笑话……</p>");
        },
        success: function (data) {
            if (data.status == "success") {
                //已登录则加载待审核内容
                jokeid = data.jokeid;
                if (data.title != "") {
                    $("#revtitle").text(data.title);
                    $("#revtitle").show();
                } else {
                    $("#revtitle").text("");
                    $("#revtitle").hide();
                }
                $("#revcontent").html(data.content);
                if (data.img != "") {
                    $("<p class=\"text-center txt_img\"><img src=\"" + data.img + "\" /></p>").appendTo("#revcontent");
                }
                $(".btn_review").removeAttr("disabled");
            } else if (data.status == "nologin") {
                showmodel();
                $("#revcontent").html("<p class=\"text-center txt_img\">你还没有登陆或者登陆超时,请重新登陆!</p>");
                $("#revtitle").text("");
                $("#revtitle").hide();
            } else {
                $("#revcontent").html("<p class=\"text-center txt_img\">" + data.msg + "</p>");
                $("#revtitle").text("");
                $("#revtitle").hide();
            }
        },
        error: function (data) {
            alert(data.status+";" + data.responseText);
        }
    });
}

//审核笑话

function revjoke(revstatus) {
    if (jokeid == 0) {
        GetArticle();
        return false;
    }
    var jid = jokeid;
    jokeid = 0;
    $(".btn_review").attr("disabled", "disabled");
    if (revstatus == 2) {
        GetArticle();
    } else {
    $.ajax({
        url: "/ajax/xx.ashx",
        dataType: "json",
        async: false,
        type: "post",
        data: { aid: jid, result: revstatus, action: "rew" },
        success: function (data) {
            if (data.status == "success") {
                if (revstatus == 0) {
                    $("#alertrevfile").show();
                } else if (revstatus == 1) {
                    $("#alertrevsuccess").show();
                }
                setTimeout(function () {
                    $(".alertrevstatus").hide();
                    GetArticle();
                }, 1000);
            } else if (data.status == "nologin") {
                showmodel();
            } else {
                $("#revcontent").html("<p class=\"text-center txt_img\">" + data.msg + "</p>");
            }
        }
    });
    }
}

以上是jQuery的Ajax请求,

我点击换一个的时候就执行GetArticle()方法,可是怎么会有时请求回调成功,有时会到error里面去呢?求大神给指点,急啊

三卷天书的主页 三卷天书 | 初学一级 | 园豆:113
提问于:2014-12-23 21:08
< >
分享
最佳答案
0
收获园豆:10
ThreeTree | 小虾三级 |园豆:1490 | 2014-12-23 22:48
其他回答(1)
0

  由于你指定dataType: "json",jquery本身对json数据要求非常严格,可能是检测到你返回的json串,不符合他的规定。

  方案1:你可以换个稍微高点版本的jq脚本

  方案2:查下json标准格式,重新组织自己json数据

收获园豆:10
卷王 | 园豆:99 (初学一级) | 2014-12-23 21:41

我下载了最新版的jQuery库,还是一样的效果,json格式应该不会有问题,不然就不会出现有些能成功有些回调到error那里

支持(0) 反对(0) 三卷天书 | 园豆:113 (初学一级) | 2014-12-23 21:47

@三卷天书: 这样子 ,你试下简单的json串,看看会不会走error

支持(0) 反对(0) 卷王 | 园豆:99 (初学一级) | 2014-12-23 21:50

@不忘初心: 你后台是怎么返回json的?

支持(0) 反对(0) 卷王 | 园豆:99 (初学一级) | 2014-12-23 21:53

@不忘初心: 这么说吧,同一条数据都有可能出现在error里面

支持(0) 反对(0) 三卷天书 | 园豆:113 (初学一级) | 2014-12-23 21:53

@三卷天书: 我觉得一定是在  dataType: "json"这个条件和你后台json数据有冲突才会走error

支持(0) 反对(0) 卷王 | 园豆:99 (初学一级) | 2014-12-23 21:57

@不忘初心: 我也这么认为,可是就找不出原因,唉

支持(0) 反对(0) 三卷天书 | 园豆:113 (初学一级) | 2014-12-23 22:58

@不忘初心: @不忘初心: 我也这么认为,可是就找不出原因,好像知道了,是数据有些内容是有\n的,虽然我转义了,但是还是会出错

支持(0) 反对(0) 三卷天书 | 园豆:113 (初学一级) | 2014-12-23 23:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册