如何解决 iframe 跨域问题

IT技术 javascript jquery html iframe cross-domain
2021-03-04 10:47:01

我正在制作必须显示另一个域的网页的网页。

例如,在我的网页 html 中,有两个<div>标签。

喜欢 :

<html>
<head></head>
<body>
   <div>
      <p> hello world </p>
   </div>
   <div>
      <!-- other domain's web page comes here -->
   </div> 
</body>
</html>

要解决我的问题,我应该使用<iframe>,<embed><object>标签,但这会导致跨域问题。所以,我不能用它来显示其他域的网页。他们不允许我使用它。

所以,例如:

<iframe src="http://stackoverflow.com"></iframe>

它不起作用。我的网页无法显示stackoverflow.com因为,stackoverflow否认了这一点。

我已经搜索了很多关于这些问题的东西。但它们只是ajaxJSONP它不是iframe

有没有解决方案可以解决我的问题?或者它是不可能实现的?

2个回答

您需要控制要嵌入的域以删除/修改其 CORS 策略。
如果域已明确阻止跨域请求,则您无能为力。

这用于避免任何人劫持您想要的任何网站(您可以在 iframe 中使用全屏 Google,在 Bettergoogle.com 上运行您的广告,诸如此类)。

此页面将为您提供有关跨域的更多见解

“尝试以编程方式从跨域 iframe 访问内容时,CORS 不适用。如果您想从不同域上的 iframe 访问内容,则需要使用 Web 消息传递 API”—— stackoverflow.com/ a/22413275/2603297
2021-04-20 10:47:01
好的,我们可以控制要嵌入的域。如何指定 CORS 策略使其工作?
2021-04-25 10:47:01
值得一提的是:除非有特别限制,默认情况下 iframe 嵌入 3rd 方网站是有效的。
2021-05-05 10:47:01

如果您在 iframe 中获得域所有者的许可,您可以要求他们将您的域添加到他们的跨域策略中,以便您可以执行此操作。

如果您无权在您的网站上显示他们的内容,我很高兴地说,现代浏览器不支持这种不道德的行为,并且无法做您想做的事情。