gpt4 book ai didi

javascript - 如何在 WinJS iframe 中加载远程内容同时避免 SEC7117 错误?

转载 作者:可可西里 更新时间:2023-11-01 14:48:45 29 4
gpt4 key购买 nike

我正在尝试将现有的 Web 应用程序移植到 Windows Phone 8.1(以及更高版本的 Windows 8.1)。这不是静态内容,这是一个具有大量客户端功能的动态页面。

我的 default.html文件有 <iframe src="https://remote.example.com/app.html"></iframe> .

iframe 中的内容在模拟器中有效,并且在初始 HTML 中直接引用的资源似乎有效。但是,我的网络应用程序却触发了几个这样的错误:

SEC7117: Network request to https://cdn.remote.example.com/extra.js did not succeed. Your application manifest does not declare the following capabilities: internetClient privateNetworkClientServer

对于 https://cdnjs.cloudflare.com/ 我得到了类似的错误... 和 https://example.cloudfront.net/ ...

模拟器只是客气,一旦应用程序在真实设备上运行,这些资源将根本无法工作。

我的 package.appxmanifest文件包括以下内容:

  <ApplicationContentUriRules>
<Rule Match="https://remote.example.com/" Type="include" />
<Rule Match="https://cdnjs.cloudflare.com/" Type="include" />
<Rule Match="https://example.cloudfront.net/" Type="include" />
<Rule Match="https://cdn.remote.example.com/" Type="include" />
</ApplicationContentUriRules>
...
<Capabilities>
<Capability Name="internetClientServer" />
<Capability Name="picturesLibrary" />
<Capability Name="internetClient" />
<Capability Name="privateNetworkClientServer" />
<DeviceCapability Name="location" />
<DeviceCapability Name="webcam" />
</Capabilities>

为什么会发生这些 SEC7117 错误?我试过使用 <x-ms-webview></x-ms-webview>元素而不是 iframe,但随后许多 Web 平台 API(例如 HTML5 GeoLocation)停止工作,并且 Microsoft 自己的指南似乎将 MSWebView 用于静态内容。

为了安全起见,我真的希望我的网络应用程序在“网络上下文”中执行,并使用 postMessage执行类似应用程序的事件(这部分正在运行)。通过像这样直接从主机获取内容,我可以更新 Windows Phone 应用程序的这一部分,而无需通过 Marketplace 推送更新。

有什么我想念的吗?我使用了错误的元素吗?其他人如何为 Windows Phone 8.1 包装现有的网络应用程序?

最佳答案

这很可能是由 iframe 安全模型引起的。

Features and restrictions by context该表列出了在 Web 上下文中禁用的跨域 XHR 请求(根据 Developing secure apps “由 iframe 加载的远程 Web 内容始终在 Web 上下文中加载”)。

如果您通过 XHR 加载内容,您将被阻止。

您可以研究方法,使用 postMessage 在本地上下文中获取数据,然后将其传回 Web 上下文。

关于javascript - 如何在 WinJS iframe 中加载远程内容同时避免 SEC7117 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175312/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com