9

在使用 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,但我可以使用 Google Chrome 访问互联网(我只需要授权,否则 HTTP 状态 407 - 需要代理授权)。

我该如何解决?

[编辑] 所以我发现它可能与我必须使用的 VPN(Cisco VPN Client)有关。当我禁用 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 == "Local Access"(因为我可能在代理后面)。

4

3 回答 3

16

连接到我的工作场所 SSL/VPN 连接(来自瞻博网络)时,我遇到了同样的错误。

打开 .appxmanifest 文件并添加“私有网络(家庭和服务器)”功能解决了这个问题。

<Capabilities>
  <Capability Name="internetClient" />
  <Capability Name="privateNetworkClientServer" />
</Capabilities>
于 2013-02-06T18:38:17.863 回答
1

该解决方案对我有用(请参阅下面的论坛链接)...本质上,您需要将服务器的证书添加到 Windows 应用商店应用程序清单中(还要确保您的最重要的“功能”至少设置为“InternetClient”)。您可以通过从浏览器导出服务器证书来获取服务器证书,另存为“.der”文件。使用 Firefox 比 IE 更容易执行此操作(从 FF,浏览到具有证书的目标域,然后右键单击页面 > 页面信息 > 安全选项卡 > 详细信息选项卡 > 导出按钮 > 另存为“.der”。

http://social.msdn.microsoft.com/Forums/en-ZA/winappswithcsharp/thread/4a776e8c-0e10-4f03-908f-7f765d914080?prof=required

这个解决方案看起来很荒谬——所以请记住,这可能只对使用自签名证书的站点(例如在开发环境中)是必需的,因为其他生产站点不需要此过程。

于 2012-11-05T23:22:26.707 回答
0

执行此操作的正确方法已发布在MSDN论坛上,它对我不起作用,但以下确实


配置文件

...

<platform name="windows"> 
     <config-file target="package.appxmanifest"> 
         <DeviceCapability Name="privateNetworkClientServer" /> 
     </config-file>
     ...
 </platform> 

这些将与您的其他功能合并

于 2016-04-20T21:26:42.863 回答