Restangular api调用外部获取“No Access Allowed”'

时间:2014-04-15 04:12:09

标签: angularjs angularjs-service restangular

关注Restangular的文档,并提供了一个示例:

// GET to http://www.google.com/ You set the URL in this case
Restangular.allUrl('googlers', 'http://www.google.com/').getList();

我正在尝试为angel.co做同样的事情

$scope.trial = Restangular.allUrl('googlers', 'https://api.angel.co/1/users/267770').getList();

并不断收到错误

XMLHttpRequest cannot load https://api.angel.co/1/users/267770. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. 

任何解决方案?

1 个答案:

答案 0 :(得分:2)

服务器(api.angel.co)没有响应Access-Control标头,导致此错误。

当向不同于原始域的域发送XHR请求时,Web浏览器正在检查该服务是否允许此操作。在你的情况下,api.angel.co需要包含标题Access-Control-Allow-Origin: *作为响应的一部分(它没有)。

假设您无法更改api.angel.co,另一种方法是构建一个允许跨源资源共享的服务器端代理(例如在node.js中)。

查看this关于跨源资源共享(CORS)的精彩文章。