【问题标题】:Windows Store App xhr to localhost failsWindows Store App xhr 到 localhost 失败
【发布时间】:2016-06-09 08:56:59
【问题描述】:

我有一个 Win Store App 应用程序,它使用 REST 与通过 USB 连接的 pinpad 设备进行通信。它有自己的专有 http 服务器/软件,但看起来相当简单。

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

使用浏览器的简单获取是成功的,就像在浏览器中运行的脚本(即ff、ch)一样。

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

以前有没有人遇到过这样的事情?我怀疑这与 Windows 应用商店应用程序如何与局域网交互有关,但我不知道该去哪里找。

【问题讨论】:

  • 我不确定,但出于安全原因,我认为您无法通过 winjs 连接到任何端口

标签: javascript xmlhttprequest windows-store-apps winjs jqxhr


【解决方案1】:

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

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

将 Windows 应用商店应用添加到豁免的应用列表中 环回防火墙,运行 checknetisolation loopbackexempt -a -n=包系列名称>来自提升的命令提示符。可从 Visual Studio 获得 Windows 应用商店应用的包系列名称 通过打包选项卡上的 Package.appxmanifest 编辑器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2017-06-13
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多