1

我正在通过 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 中启用交叉请求?

取消不是来自服务器。

4

2 回答 2

1

启用跨站点请求

angularjs $http 文档

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

出于测试目的,您可以执行以下操作:

myApp.config(['$httpProvider', function($httpProvider) {
  $httpProvider.defaults.useXDomain = true;
  delete $httpProvider.defaults.headers.common['X-Requested-With'];
}]);
于 2013-08-22T15:06:04.163 回答
1

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

Access-Control-Allow-Origin: *

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

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

于 2013-08-22T16:19:49.230 回答