通过Angular JS调用外部API

时间:2013-08-22 14:26:28

标签: angularjs

我在Angular JS的PHP服务器上调用我的API:

 $http({method: 'POST', url: 'my api...',

我的电话总是被取消并产生错误:

XMLHttpRequest cannot load http://kni.prz.edu.pl/querye/api/querye. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

如何在Angular JS中启用交叉请求?

取消的不是来自服务器。

2 个答案:

答案 0 :(得分:1)

启用跨网站请求

angularjs $http docs

运行已部署的实例时,很可能不会出现此错误,因为您不在本地主机上。

出于测试目的,您可以:

myApp.config(['$httpProvider', function($httpProvider) {
  $httpProvider.defaults.useXDomain = true;
  delete $httpProvider.defaults.headers.common['X-Requested-With'];
}]);

答案 1 :(得分:1)

问题可能实际上是在服务器端。您需要添加响应标头以允许跨域请求:

Access-Control-Allow-Origin: *

请注意,添加此项将允许任何域向您的主机发送请求。

如果您无法控制服务器,则需要尝试JSONP,请参阅:$http.jsonp