这是一个同学出现的问题,问到了我。

应该是这样的:

为什么返回的数据前面有callback?

但问题是这样的:

为什么返回的数据前面有callback?

我看了所请求的格式和后台要求的也是相同的。而且我也是这种做法,为什么他的就不行呢?

打了几遍 JSON.parse 也都是不行……然后也不知道什么情况的耿耿于怀的回去了。

 

后来在网上搜索,结果都不是想要的。

把 callback 字符串截取掉,这个就不用说咯。这是一种把 json 弄出来的方法。但并不是要问的问题。要问的是:

为什么返回的数据前面会加上 callback ,括号里才是 json 内容。

 

知乎相似问题:

调用一个api,返回数据格式是:jsonCallback(括号里面才是json),该怎么处理?

  

百度知道相似问题:

如何在这组返回的数据中获取data对应字符串中jsonCallBack函数并通过其调用?

  为什么返回的数据前面有callback?

var jsonback = function (json) {
    return json;
};
var jsonObj = eval(obj.data);

//或

var jsonStr = JSON.parse(obj.data.match(/^jsonback\((.*)\);$/)[1]);

 

csdn相似问题:

关于jsonp返回回来的数据怎么解析
jQuery18307755723037111298_1402151229915([{ "list": [{ "id": 1, "title": "title 1" }, { "id": 2, "title": "title 2" }, { "id": 3, "title": "title 3"}] }])

//jq的代码是这样子的
function loadInfo() {
    var url = "http://192.168.100.101:81/A.aspx";
    $.ajax({
        type: "get",
        async: true,
        url: url,
        dataType: "jsonp",
        jsonp: "callback",
        //服务端用于接收callback调用的function名的参数
        success: function(data) {
            alert(data.list);
            //这个地方报错是,不是一个函数
        },
        error: function() {
            alert("error");
        }
    });
}
View Code

相关文章: