为什么我的Web服务调用在调用其他站点时失败

时间:2012-07-05 14:37:33

标签: ajax web-services web

我正在对这样的Web服务进行JQuery ajax调用:

    $.ajax({
        type: "POST",
        url: "https://WebsiteName.com/Service.asmx/LoginExternal",
        data: "{loginData: " + JSON.stringify(LoginData) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            ... Stuff ...
        },
        error: {
            ... Error Alert ...
        }
    });

当我在实际的网站上时,这成功了。当我在localhost上并使用相对路径时,它会成功。但是,当我尝试从localhost访问网站(使用绝对路径)时,我收到呼叫失败的错误消息。

这似乎表明它是一个权限问题,我已经确保web.config不需要身份验证来访问Web服务,但我不确定还要检查什么。任何帮助将不胜感激!

更新:我得到的“抛出错误”是“没有运输” - 希望这会有所帮助。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

作为一种不安全的脚本逻辑,由于未经身份验证和未加密的请求,使用JavaScript(或JQuery)发出的ajax请求被置于同一主机,协议和端口上。

将请求传递到其他主机的方法,您必须实现以安全语言(例如Java)编写的桥接服务,部署在将您的请求进一步传递给您的服务的同一主机上,然后将响应传递给您的ajax调用

您的ajax呼叫将在桥接服务上。