我是AngularJS的新手,所以请耐心等待。我得到了以下代码:
var testModule = angular.module("testModule", ['ngResource']);
testModule.config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'https://api.twitter.com/**']);
});
testModule.controller("SecondController",
function SecondController($scope, $resource){
$scope.secondField = "Hello World";
try{
var restClient =
//$resource("https://api.github.com/repos/angular/angular.js/issues", [],
$resource("https://api.twitter.com/1.1/search/tweets.json", [],
{
"get":{method:"GET", headers:{"Accept":"application/json"},
interceptor: {
"response":function(data){
alert("Response: " + data);
},
"responseError":function(data){
alert("Error: " + data);
}
}
}
});
$scope.about = restClient.get();
} catch(err) {
$scope.error = err.message;
}
$scope.done = true;
}
);
它应该执行responseError函数,data.status应该等于215(请求要求身份验证成功传递)。相反,响应代码为0。
我实际上是想尝试使用不同的API(不需要身份验证),但状态代码也是0,我真的不知道问题可能是什么。我到目前为止唯一成功的要求是:
获取https://api.github.com/repos/angular/angular.js/issues
由$ resource.query()执行。但也不是推特,也不是目标API。我希望为twitter提供一个解决方案可以帮助我解决我的问题。
感谢。
编辑:使用AngularJS 1.2.0 rc2
答案 0 :(得分:1)
这可能是因为跨域请求。当您尝试访问不同域的Web服务时,将出现状态码0。在这种情况下,您需要在ngResource中使用JSONP作为方法。
http://docs.angularjs.org/api/ngResource.$resource