小编典典

AngularJS JSONP无法正常工作

angularjs

我可能在这里丢失了一些东西,但无法使此JSONP请求正常工作,这是代码:

var url =  'http://' + server + '?callback=JSON_CALLBACK';
$http.jsonp(url)
    .success(function(data){
       console.log('success');
    })
    .error(function () {
      console.log('error')
    });

该请求会触发,并且我收到以下格式的响应(带有标头Content-Type:application / json):

    [{"id": "1", "name": "John Doe"},
     {"id": "2", "name": "Lorem ipsum"},
     {"id": "3", "name": "Lorem ipsum"}]

你看到什么错了吗?也许我应该从服务器返回的格式不对吗?Angular触发错误回调,除了我设置的错误消息外,没有任何错误消息(“错误”)。


阅读 336

收藏
2020-07-04

共1个答案

小编典典

JSONP要求您将数据包装到JavaScript函数调用中。因此,从技术上讲,您返回的是JavaScript文件,而不是Json文件。

从服务器返回的数据应类似于以下内容:

// the name should match the one you add to the url
JSON_CALLBACK([
    {"id": "1", "name": "John Doe"},
    {"id": "2", "name": "Lorem ipsum"},
    {"id": "3", "name": "Lorem ipsum"}
]);

编辑:如果其他人偶然发现了angular的JSONP问题,也请阅读此问题的答案,它包含有关angular如何处理实际回调函数的有用信息。

2020-07-04