开发者社区> 问答> 正文

Jquery ajax json 不执行success的原因

screenshot

现在执行的是error方法

看到网上的资料

随着Jquery版本的提高,对于json格式有着严格的要求,原先类似这种格式的返回信息{success:true,id:1,result:"ok"}在高版本中已不适用,需采取以下格式 改成{"success":true,"id":"1"} 就可以正常执行success回调了。

但是我下面就是严格的json格式啊

下面是服务器输出的json
screenshot
screenshot

展开
收起
杨冬芳 2016-06-23 11:29:58 2295 0
1 条回答
写回答
取消 提交回答
  • IT从业

    jsonp请求有特殊要求,你的代码应该类似:

    $.ajax({
        url: 'XXXX.com/index.php/Home/Shop/transCloseShop',
        type: 'GET',
        dataType: 'jsonp',
        timeout: 1000,
        cache: false,
        jsonp: false,
        data:{
            robot:"123",
            usertype:"0",
            userid:"22",
            shopid:"4",
            transToCondition:1,
        },
        jsonpCallback: 'successCallback'
    })
    
    function successCallback(data){
        console.log('成功!');
    }

    然后服务器端返回的内容不能是一个纯json,得是一个可执行的脚本,根据上面我们设置的jsonpCallback,服务器返回的内容应该大致这个样子:

    successCallback([{"shop_id":"3","shop_name":"\u65b0\u4e16\u754c\u4e2d\u9910"...}]);
    2019-07-17 19:46:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载