拒绝在帧中显示LOCALHOST,因为“ X-Frame-Options”设置为“ sameorigin”

这个问题专门针对本地主机。我试图将一个localhost网页嵌入另一个localhost网页,但是它指出无法完成。这是chrome开发人员工具中的消息:

Refused to display 'http://127.0.0.1:4040/jobs/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

Pictured here

我尝试同时使用Firefox和chrome。这是来自firefox的错误消息:

Load denied by X-Frame-Options: “SAMEORIGIN” from “http://127.0.0.1:4040/jobs/”,site does not permit cross-origin framing from “http://localhost:8888/lab”.

为什么不将localhost视为同一来源?

如何取消对本地主机的限制?

先谢谢您。

我宁愿在AJAX请求上使用iframe,除非AJAX能够以iframe能够执行的相同方式在网页上进行复制。

baizhongzheng 回答:拒绝在帧中显示LOCALHOST,因为“ X-Frame-Options”设置为“ sameorigin”

我不知道关于本地主机的任何其他规则,但通常端口号是来源的一部分。同源,您需要使用相同的端口号,即单个Web服务器。

如果出于某种技术原因绝对需要使用多台服务器,则可以让一台服务器充当另一台服务器的“反向代理”,或者使用一台反向代理服务器与两台服务器通信。

,

Kevin Reid 的回答是正确的,他的代理服务器解决方案也是正确的。但我会添加更多细节。

来自Mozilla Developer Network

如果两个 URL 的协议、端口(如果指定)和主机相同,则两个 URL 具有相同的来源。您可能会看到它被称为“方案/主机/端口元组”,或者只是“元组”。 (“元组”是一组共同构成一个整体的项目——双重/三重/四重/五重/等的通用形式。)

http://127.0.0.1:4040http://localhost:8888 不是同源的。哎呀,根据定义,甚至 http://127.0.0.1http://localhost 都不是同源的。

如何解决?此解决方案特定于 IIS 10 Windows Server 2016。但 Kevin 所说的想法是启用“反向代理”。

  1. 安装应用请求路由。
  2. 转到应用程序请求路由缓存 -> 服务器代理设置并选中启用代理。
  3. 转到 URL Rewrite 并创建入站规则。这将是两个入站规则(端口 4040 和 8888)。这样做的目的是将 localhost/jobs 路由到 localhost:4040/jobs,将 localhost/labs 路由到 localhost:8888/labs。实际上,这将使两个 Web 服务器具有相同的来源,http://localhost
  4. 您的模式可能类似于 jobs(/)?(.*) 并重写作业网络服务器的 URL http://localhost:4040/jobs/{R:2}。测试模式以获得正确的 {R:x}
  5. 使用浏览器测试您是否可以访问 http://localhost/jobshttp://localhost/labs
  6. iframe 现在应该可以工作了。
本文链接:https://www.f2er.com/2604768.html

大家都在问