0

我在站点 A 上有一个有效的网络服务,我在站点 A 内使用该服务没有问题,现在我试图从站点 B 使用相同的服务但​​没有成功...

代码如下 -

$(function () {
            $.getJSON("http://siteA.com/Services/myasmx.asmx/dummy",
                {
                    sID: "tempID"
                },
            function (data) {
                //success call
.
.
                return false;
                  });
              });
        });

知道如何从站点 B 使用站点 A 网络服务吗?

谢谢

4

3 回答 3

1

现代浏览器不允许跨站点 HTTP 请求作为安全措施。解决此问题的正确方法是在 URL 中使用 JSONP 回调。

$.getJSON("http://siteA.com/Services/myasmx.asmx/dummy?jsoncallback=?",
    function(data){
      // do something here
    });
于 2012-09-11T14:51:58.793 回答
1

将 $.ajax 与 dataType: "jsonp" 一起使用 - 这将自动为您注册回调函数并避免跨域问题。

于 2012-09-11T14:54:02.897 回答
0

这是因为跨域策略。

如果您可以在 Web 服务的响应中包含一些标头,则可以轻松绕过它。

见:http ://www.w3.org/TR/cors/

于 2012-09-11T14:47:03.493 回答