2013-08-22 73 views
1

我打电话通过角JS我的PHP服务器API:调用外部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中启用交叉请求?

取消不是来自服务器。

+0

尝试启动一个本地服务器,看看你的要求去低谷。 – Pavlo

+0

本地服务器不是解决方案,仍然是相同的错误。达因你是什么意思? –

+0

@DavinTryon:从错误信息中不明显吗? –

回答

1

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

Access-Control-Allow-Origin: * 

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

如果你没有服务器的控制权,你需要尝试JSONP,请参阅:$http.jsonp

+0

现在可以工作。 –

+1

把'localhost'比放*更安全。 – 0xc0de

1

要启用跨站点请求

angularjs $http docs

最有可能运行的部署实例时,你会不会在本地主机,你不会得到这个错误。

出于测试目的,你可以这样做:

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

我已经试过这种配置,但我得到了同样的错误。 –