Javascript 如何在WinJS iframe中加载远程内容,同时避免SEC7117错误?
我正在尝试将现有的web应用移植到Windows Phone 8.1(以及更高版本的Windows 8.1)。这不是静态内容,这是一个具有大量客户端功能的动态页面 我的Javascript 如何在WinJS iframe中加载远程内容,同时避免SEC7117错误?,javascript,html,windows-8.1,winjs,windows-phone-8.1,Javascript,Html,Windows 8.1,Winjs,Windows Phone 8.1,我正在尝试将现有的web应用移植到Windows Phone 8.1(以及更高版本的Windows 8.1)。这不是静态内容,这是一个具有大量客户端功能的动态页面 我的default.html文件具有 iframe中的内容在emulator中起作用,在初始HTML中直接引用的资源似乎也起作用。但是,我的web应用程序会触发以下几个错误: SEC7117:对的网络请求未成功。 您的应用程序清单未声明以下功能:internetClient privateNetworkClientServer 我得到
default.html
文件具有
iframe中的内容在emulator中起作用,在初始HTML中直接引用的资源似乎也起作用。但是,我的web应用程序会触发以下几个错误:
SEC7117:对的网络请求未成功。
您的应用程序清单未声明以下功能:internetClient privateNetworkClientServer
我得到类似的错误为。。。而且
emulator只是出于善意,一旦应用程序在真实设备上运行,这些资源将根本无法工作
我的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错误?我曾尝试使用
元素而不是iframe,但随后许多Web平台API(例如HTML5地理位置)停止工作,微软自己的指南似乎将MSWebView用于静态内容
出于安全目的,我真的希望我的web应用程序在“web上下文”中执行,并使用postMessage
执行类似于应用程序的活动(这部分正在工作)。通过像这样直接从主机获取内容,我可以更新Windows Phone应用程序的这一部分,而无需通过市场推动更新
有什么我遗漏的吗?我是否使用了错误的元素?其他人如何包装Windows Phone 8.1的现有web应用?这很可能是由iframe安全模型造成的 下表列出了在web上下文中禁用的跨域XHR请求(根据“iframe加载的远程web内容总是在web上下文中加载”) 如果您通过XHR加载内容,您将被阻止
您可以研究方法,使用postMessage在本地上下文中获取数据,然后将其传递回Web上下文。我还尝试将跨源脚本源放入
ApplicationContentUrules
中,但没有成功。