【问题标题】:Error using WinJs.XHR to call service使用 WinJs.XHR 调用服务时出错
【发布时间】:2012-09-26 22:13:13
【问题描述】:

我正在尝试在 Windows 8 应用程序中使用 WinJs.XHR 调用 Web 服务;当我不使用防火墙时,代码工作正常;但是,当我使用防火墙时,出现以下错误:

**Forbidden ( Forefront TMG denied the specified Uniform Resource Locator (URL).  )**

有什么线索吗?

  WinJS.Promise.timeout(50000, WinJS.xhr({
        url: "<Service_URL>"

    })
        .then(function (rss) {


        }, function (onRError) {

            });
        },
        function progress(result) {

        }) );

【问题讨论】:

    标签: windows-8 microsoft-metro winjs windows-store


    【解决方案1】:

    如果不查看 URL,可能很难确定。我敢打赌 URL 中的一个字符被防火墙拒绝了。您可以使用Fiddler 查看防火墙关闭/打开时的 URL。

    【讨论】:

    • 我在 ISA 服务器上检查过;所有 url 都发生了什么事,因为请求是使用匿名凭据发送的;所以 isa 会阻止调用但是如果我在浏览器中使用相同的 url 它可以工作,因为我的凭据是与请求一起发送的。
    • 有没有办法强制请求使用我的 Windows 凭据,以便请求安全绕过防火墙?
    • 我认为您可能需要与公司防火墙的管理员合作,以确定完成这项工作的最佳方式。如果它是 HTTP,它应该可以工作......你可以在这个网络上使用浏览器,是吗?如果是这样,通过 XHR 的 HTTP 调用应该可以工作,除非您的防火墙仅对来自特定应用程序的 HTTP 流量有例外。
    • @devhammer ;是的,它可以在普通浏览器中运行;但不是来自 winJs.XHR;用户发送的防火墙服务器的原因是匿名,而从普通浏览器发送的原因是我的域用户名
    【解决方案2】:

    您可能想查看此处描述的企业身份验证功能:

    http://msdn.microsoft.com/en-us/library/windows/apps/hh464936.aspx

    我没用过,但它可能会给你你需要的东西。

    【讨论】:

    • 我之前尝试过其他功能,但没有成功。
    【解决方案3】:

    问题不存在了,我所做的只是添加互联网(客户端/服务器)和私有网络,然后他们将它们删除。

    不确定是代码还是 ISA 服务器/客户端的问题。

    【讨论】:

      猜你喜欢
      • 2017-02-22
      • 2013-09-09
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多