Windows 将应用程序 xhr 存储到本地主机失败

Windows Store App xhr to localhost fails

我有一个 Win Store App 应用程序,它使用 REST 与通过 USB 连接的密码键盘设备进行通信。它有自己专有的 http server/software,但看起来相当简单。

在我的开发机器和我的测试机器上都按预期工作。但是,在我的测试机上却没有。问题是 xhr GET 失败了。它只是超时并且 returns 状态 0.

使用浏览器的简单获取成功,在浏览器(即 ff、ch)中的脚本 运行 也是如此。

我已将 xhr 换成 httpClient,jquery.ajax 并直接调用 XMLhttpRequest - 所有结果都相同。我已经尝试为 CORS 设置位置 header。尝试了不同的地址格式(localhost、127.0.0.1、192...等)。该应用程序将愉快地获取外部内容(例如 google.com)。

有没有人遇到过这样的事情?我怀疑这与 Windows Store 应用程序如何与 LAN 交互有关,但我不知道还能去哪里查看。

默认情况下 Windows 商店应用程序被阻止环回连接到本地主机。默认情况下,Visual Studio 会在调试时设置一个异常,您可以自己设置一个用于测试或使用 checknetisolation 工具的旁加载应用程序。如果您的应用将从商店部署,则它不能依赖环回豁免。

请参阅 MSDN 上的 Using network loopback in side-loaded Windows Store apps

To add a Windows Store app to the list of apps that are exempt from the loopback firewall, run checknetisolation loopbackexempt -a -n=<package family name> from an elevated command prompt. The package family name for a Windows Store app is available from Visual Studio via the Package.appxmanifest editor on the packaging tab.