JavaScriptでWindows8 Metroアプリケーションを開発するときに、WinJS.xhrに問題があります。
WinJS.xhr({ url: "http://www.seznam.cz"});
上記のコードを実行すると、ログに次のように表示されます。
SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete
the operation due to error 00002efd.
マニフェストで「インターネット(クライアント)」機能を有効にしました。
おそらく問題は、私がプロキシの背後にいてVPNを使用しているためですが、Google Chromeを使用してインターネットにアクセスできます(認証する必要があります。それ以外の場合はHTTPステータス407-プロキシ認証が必要です)。
どうすれば修正できますか?
[編集]それで、おそらく使用しなければならないVPN(Cisco VPN Client)に関連していることがわかりました。 VPNを無効にすると、プロキシの背後にいる場合でも(LANを使用し、VPNではWiFiを使用します)、要求は機能します。多分それはCiscoVPN関連だけです。ここで説明されているように、レジストリを変更する必要がありました http://verbalprocessor.com/2012/09/17/windows-8-and-Cisco-vpn-client/
また興味深いのは、プロキシの背後にいるときに、いくつかのMetroアプリが機能し(マップ)、一部が機能しない(Windowsストア)ことです。
ただの注意:私はWindows.Networking.Connectivityを調べましたが、どちらの場合も(VPNの有無にかかわらず)NetworkConnectivityLevel == "Local Access"を取得します(おそらくプロキシの背後にいるため)。
職場のSSL/VPN接続(ジュニパーから)に接続したときに同じエラーが発生しました。
.appxmanifestファイルを開き、「プライベートネットワーク(ホームとサーバー)」機能を追加すると、問題が解決しました。
<Capabilities>
<Capability Name="internetClient" />
<Capability Name="privateNetworkClientServer" />
</Capabilities>
このソリューションは私のために機能しました(以下のフォーラムリンクを参照)...基本的に、サーバーの証明書をWindowsストアアプリマニフェストに追加する必要があります(また、最も巧妙な「機能」が少なくとも「InternetClient」に設定されていることを確認してください)。サーバーの証明書は、ブラウザからエクスポートすることで取得できます。保存は「.der」ファイルです。 Firefoxの使用はIEよりも簡単でした(FFから、証明書のあるターゲットドメインを参照し、ページを右クリック>ページ情報>セキュリティタブ>詳細タブ>エクスポートボタン>「。der」として保存します。
このソリューションはばかげているように思われます。このプロセスは他の本番サイトでは必要なかったため、開発環境のように自己署名証明書を使用しているサイトでのみ必要になる可能性があることに注意してください。
これを行う適切な方法は [〜#〜] msdn [〜#〜] フォーラムに投稿されました、それは私にとってはうまくいきませんでしたが、以下はうまくいきました
config.xml
...
<platform name="windows">
<config-file target="package.appxmanifest">
<DeviceCapability Name="privateNetworkClientServer" />
</config-file>
...
</platform>
これらは他の機能と統合されます