2015-10-05 241 views
3

我尝试使用$ HTTP(角),此代码发送HTTP请求:离子,访问控制允许来源

$http({ 
       method: 'GET', 
       url: 'http://192.168.0.17:9000', 
       header: {'Access-Control-Allow-Origin': "*"}, 
     }).then(getEventsSuccess, getEventsError); 

但是,这并不工作,我在Web控制台此错误:

XMLHttpRequest cannot load http://192.168.0.17:9000/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. 

您有解决方案吗?

+4

访问控制允许来源必须设置服务器端,而不是客户端 – Jamby

+0

听起来像CORS问题 – swapnesh

+0

我做它在两侧,但同样的问题。 .. –

回答

4

由于在您的浏览器中实施的安全机制(称为同源策略),您会看到此错误。

基本上,这是因为您的网页尝试访问驻留在与网页本身不同的主机,端口或方案(HTTP/HTTPS /文件等)上的服务器上的资源。

为了解决这个问题,您可以执行下列操作之一:

  • 从您试图访问服务器服务您的网页。如果您的网页网址为http://192.168.0.17:9000/X.html,您的请求应该成功,并且错误将消失。
  • 为您的服务器发送的响应(称为Access-Control-Allow-Origin)添加一个特殊标题。

在这里阅读更多: https://en.wikipedia.org/wiki/Same-origin_policy https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS