我有角度的这个工厂,它总是给我一个0错误代码,即使我可以看到它从json原点获取,有人可以帮助我吗?
app.factory('docFactory', function($http) {
var docFactory = {
async: function(page) {
var url = 'http://example.com/ProviderRequest?&queryString=searchv2&callback=JSON_CALLBACK';
var promise = $http.jsonp(url).error(function (response, status) {
alert(status);
}).success(function (response, status) {
alert(status);
}).then(function (response, status) {
return response.data;
});
return promise;
}};
return docFactory;
});
答案 0 :(得分:2)
我自己遇到了这个问题。如果您的JSONP是函数调用或虚假(null
,false
,undefined
),您将遇到此行为。请查看AngularJS HTTP后端的this代码以获取更多信息(第41-54行是相关的)。
如果要返回一个函数,则可能只需要在调用后返回true或其他内容。
编辑:查看您的plunker后,您的JSONP响应似乎没有调用回调方法。响应应为angular.callbacks._0( { ... } );
,其中{ ... }
是您的对象,angular.callbacks._0
是请求中callback
查询参数的值。
答案 1 :(得分:-1)
上面的例子几乎是正确的。只需将callback
参数更改为
jsoncallback=JSON_CALLBACK
你最后应该有类似的东西
$http.jsonp(url + '?jsoncallback=JSON_CALLBACK').success(function(data) {
console.log(data);
})