0

我有这个工厂,它总是返回一个 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;
});
4

2 回答 2

2

我自己遇到了这个。如果您的 JSONP 是函数调用或一些虚假的 ( null, false, undefined),您将遇到这种行为。查看来自 AngularJS HTTP 后端的这段代码以获取更多信息(第 41 - 54 行是相关的)。

如果您要返回一个函数,您可能只需要在调用后返回 true 或其他内容。

编辑:查看您的 plunker 后,您的 JSONP 响应似乎没有调用回调方法。响应应该是您的对象在angular.callbacks._0( { ... } );哪里,并且是请求中查询参数的值。{ ... }angular.callbacks._0callback

于 2013-06-03T23:52:05.837 回答
-1

您上面的示例几乎是正确的。只需将callback参数更改为

jsoncallback=JSON_CALLBACK

你最后应该有类似的东西

$http.jsonp(url + '?jsoncallback=JSON_CALLBACK').success(function(data) {
     console.log(data);
})
于 2013-10-09T12:20:57.960 回答