我有2个项目正在并行运行。 http://localhost:497和http://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中的内容。
我不知道如何解决这个错误,请帮帮我。谢谢大家。
答案 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>