繁体   English   中英

AngularJS:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

[英]AngularJS: No 'Access-Control-Allow-Origin' header is present on the requested resource

在我的客户端代码中,我正在使用AngularJS $ http发送GET请求以从后端服务器获取一些数据。 默认情况下,后端服务器不会在响应头中放置“ Access-Control-Allow-Origin”。

当我通过Chrome发送此请求时,出现错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource

Web服务器和后端服务器都在具有不同端口号的同一台计算机上运行。

当我安装了Chrome插件以启用跨域资源共享时,它运行良好。 但是,我想通过仅更改我的AngularJS客户端代码来使其工作,而不更改Web Bower的设置和后端服务器的代码。 是否有可能做到这一点?

谢谢

您需要在您的php页面开始处添加它

<?php header('Access-Control-Allow-Origin: *'); ?>

对于.NET服务器,可以在web.config中进行如下配置

<system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="http://www.makemypublication.com" />
     </customHeaders>
  </httpProtocol>
 <system.webServer>

或者,当您想进行跨域请求时,您需要做一些不同的事情。 有关如何实现此目标的教程是使用CORS

使用邮递员时,它们不受此政策的限制。 引用自跨域XMLHttpRequest

常规网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但是它们受同一原始策略的限制。 扩展不受限制。 扩展可以在其起源之外与远程服务器通信,只要它首先请求跨域许可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM