asp.net中出现“Access-Control-Allow-Origin”标题错误

时间:2017-04-24 04:17:19

标签: jquery html asp.net iis

我有2个项目正在并行运行。 http://localhost:497http://localhost:580

http://localhost:580我希望将http://localhost:497中的文件html表单文件夹PDF转换为iframe

<iframe src="http://localhost:497/PDF/test.html"></iframe>

之后,我收到了一个错误:

  

XMLHttpRequest无法加载   http://localhost:497/PDF/test.html。没有   请求中存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://localhost:580”   访问。

我不能使用jquery来获取iframe中的内容。

我不知道如何解决这个错误,请帮帮我。谢谢大家。

2 个答案:

答案 0 :(得分:0)

出于安全考虑,所有现代浏览器都不允许跨域请求。当XMLHttpRequest从一个域到另一个域(在这种情况下为localhost:580到localhost:497)时,它将向服务器发送所谓的飞行前请求,以查看请求服务器是否具有访问权限。必须存在适当的标题才能接受请求,一旦验证了初始预检握手,就会在第二次行程中发生。以下是Mozilla的CORS文档链接:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

答案 1 :(得分:0)

如果在Visual Studio中增强web.config文件,它应该可以正常工作。 据我所知,preflight自动生成OPTIONS请求,因此您还需要允许OPTIONS请求。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="http://localhost:580" />
       <add name="Access-Control-Allow-Methods" value="GET,OPTIONS" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>
</configuration>