iframe 的安全错误
Security Error with iframe
以下问题出现在 Android 4.4 及更高版本的设备中。
这是我们的 iframe 的样子:
<iframe frameborder=0 id="myIFRAME"></iframe>
以下是我们以编程方式获取 iframe 的方式:
if(document.getElementById("myIFRAME")){
me.setMyIFRAME(document.getElementById("myIFRAME").contentWindow);
}
这导致了与协议不匹配相关的安全错误:
"Uncaught SecurityError: Blocked a frame with origin
"https://www.google.com" from accessing a frame with origin "file://".
The frame requesting access has a protocol of "https", the frame being
accessed has a protocol of "file". Protocols must match.
我们正在使用 Sencha touch 和 Cordova 来开发我们的项目。
If content is served in an iframe from a whitelisted domain, that domain will have access to the native Cordova bridge.
您是否尝试过在 config.xml
中添加外部域 to the whitelist?
<access origin="https://google.com" />
@Ritika,
我在这里大胆猜测,因为我不使用 iframe,但在您的 <iframe>
元素中我没有看到 src
。因此,系统将其设置为某种类型的默认值,并且该源的协议是 file://
我认为如果您设置 src=
,即使是空白,问题也会消失。
离开,只是一个猜测。祝你好运。
Google 无法通过 iFrame 访问。
默认情况下,使用 file://
协议的页面无法通过 http://
或 https://
协议访问资源。
就个人而言,我会完全避免使用 iFrame。
事实证明,iframe 正在加载 html 页面,该页面正在访问 window.document,这导致了跨域安全错误
下面如果条件在页内
if (window.parent.document != window.document)
我们将其更改为以下解决安全错误的条件
if (window.parent != window)
以下问题出现在 Android 4.4 及更高版本的设备中。
这是我们的 iframe 的样子:
<iframe frameborder=0 id="myIFRAME"></iframe>
以下是我们以编程方式获取 iframe 的方式:
if(document.getElementById("myIFRAME")){
me.setMyIFRAME(document.getElementById("myIFRAME").contentWindow);
}
这导致了与协议不匹配相关的安全错误:
"Uncaught SecurityError: Blocked a frame with origin "https://www.google.com" from accessing a frame with origin "file://". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "file". Protocols must match.
我们正在使用 Sencha touch 和 Cordova 来开发我们的项目。
If content is served in an iframe from a whitelisted domain, that domain will have access to the native Cordova bridge.
您是否尝试过在 config.xml
中添加外部域 to the whitelist?
<access origin="https://google.com" />
@Ritika,
我在这里大胆猜测,因为我不使用 iframe,但在您的 <iframe>
元素中我没有看到 src
。因此,系统将其设置为某种类型的默认值,并且该源的协议是 file://
我认为如果您设置 src=
,即使是空白,问题也会消失。
离开,只是一个猜测。祝你好运。
Google 无法通过 iFrame 访问。
默认情况下,使用
file://
协议的页面无法通过http://
或https://
协议访问资源。
就个人而言,我会完全避免使用 iFrame。
事实证明,iframe 正在加载 html 页面,该页面正在访问 window.document,这导致了跨域安全错误 下面如果条件在页内
if (window.parent.document != window.document)
我们将其更改为以下解决安全错误的条件
if (window.parent != window)