我可能在这里丢失了一些东西,但无法使此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触发错误回调,除了我设置的错误消息外,没有任何错误消息(“错误”)。
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如何处理实际回调函数的有用信息。