Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在WinJS iframe中加载远程内容,同时避免SEC7117错误?_Javascript_Html_Windows 8.1_Winjs_Windows Phone 8.1 - Fatal编程技术网

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

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 我得到

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

我的
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
中,但没有成功。