iframe src允许所有来源,但仍收到跨域错误

时间:2018-09-12 14:49:44

标签: javascript jquery iframe https

我管理siteA的前端,并在页面上放置一个iframe,其中的src指向来自siteB的资源。这是其他供应商和客户端使用的可嵌入资源(视频嵌入),因此siteB的响应标头设置为Access-Control-Allow-Origin *。并且所有涉及的URL都是https。

我在开发工具中有src url的标题的屏幕快照:

screenshot of response headers

但是,当我尝试查询iframe文档以检查是否存在特定元素时,我仍然收到跨域错误

我不是要修改任何内容,而是要根据内容做出简单的UI决定。

无济于事,我尝试过:

  • 标准jQuery方法,例如$('iframe')。contents()。find()
  • $。get请求以检索html响应,并查看它是否包含特定的字符串

我想念什么吗?克服这一障碍将是我们项目的重大胜利。

1 个答案:

答案 0 :(得分:1)

您可以应用Access-Control-Allow-Origin标头,该标头将允许您从其他域读取ajax响应,例如:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" />

    <item>
        <bitmap
            android:src="@mipmap/my_logo"
            android:gravity="center"/>
    </item>

</layer-list>

但是由于Same Origin Policy,此标头将允许您从另一个域访问渲染的iframe。但这将允许您向iFrame的域发出新的ajax(GET)请求,然后使用响应。

stackoverflow question探索了绕过同源政策的一些方法,有些建议可能会对您有所帮助,但这取决于您要实现的目标。