0

我正在对 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 访问网站(使用绝对路径)时,我收到调用失败的错误消息。

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

更新:我得到的“thrownError”是“No Transport”——希望这会有所帮助。

4

2 回答 2

1

安全:

http://en.wikipedia.org/wiki/Same_origin_policy

于 2012-07-05T14:39:02.223 回答
1

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

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

然后,您的 ajax 调用将在桥接服务上。

于 2012-07-05T14:51:12.867 回答