在使用JavaScript开发Windows 8 Metro应用程序时,我遇到WinJS.xhr问题。
WinJS.xhr({ url: "http://www.seznam.cz"});
当执行上面的代码时,我在日志中看到:
SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete
the operation due to error 00002efd.
我在清单中启用了“Internet(客户端)”功能。
也许问题是因为我支持代理并使用VPN,但我可以使用谷歌浏览器访问互联网(我只需要授权,否则需要HTTP状态407 - 代理授权)。
我该如何解决?
[编辑] 所以我发现它可能与我必须使用的VPN(Cisco VPN客户端)有关。当我禁用VPN时,即使我在代理后面(我使用LAN,使用VPN我使用WiFi),请求也可以。也许它只与Cisco VPN相关。我必须修改注册表,如http://verbalprocessor.com/2012/09/17/windows-8-and-cisco-vpn-client/
所述同样有趣的是,当我在代理服务器之后时,一些Metro应用程序可以工作(地图),而有些则不起作用(Windows商店)。
只是一个通知:我已经探索过Windows.Networking.Connectivity,在这两种情况下(有/没有VPN)我得到NetworkConnectivityLevel ==“本地访问”(因为我可能在代理之后)。
答案 0 :(得分:16)
连接到我的工作场所SSL / VPN连接(来自Juniper)时,我遇到了同样的错误。
打开.appxmanifest文件并添加“专用网络(家庭和服务器)”功能解决了这个问题。
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="privateNetworkClientServer" />
</Capabilities>
答案 1 :(得分:1)
此解决方案适用于我(请参阅下面的论坛链接)...实质上,您需要将服务器的证书添加到Windows应用商店应用清单中(同时确保您的最强大的“功能”设置为至少“InternetClient”) 。您可以通过从浏览器导出服务器来获取服务器的证书,另存为“.der”文件。在执行此操作时使用Firefox比IE更容易(从FF,浏览到具有证书的目标域,然后右键单击页面&gt;页面信息&gt;安全选项卡&gt;详细信息选项卡&gt;导出按钮&gt;另存为“ .der“。
这个解决方案似乎很荒谬 - 所以请记住,这可能只对使用自签名证书的站点有用,例如在开发环境中,因为这个过程对于其他生产站点不是必需的。
答案 2 :(得分:0)
执行此操作的正确方法发布在MSDN论坛上,它对我不起作用,但以下内容
<强> config.xml中强>
...
<platform name="windows">
<config-file target="package.appxmanifest">
<DeviceCapability Name="privateNetworkClientServer" />
</config-file>
...
</platform>
这些将与您的其他功能合并