使用JQuery进行跨域Ajax调用

时间:2011-04-07 05:34:22

标签: jquery asp.net asmx

当我的asmx Web服务位于不同的域中时,代码似乎不起作用。有什么我想念的吗?

 function CallGreet() {
            $.ajax({
                type: "POST",
                url: "http://test.me/TestWebService.asmx/HelloWorld",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: OnSuccess,
                error: OnError
            });
        }

...谢谢

4 个答案:

答案 0 :(得分:2)

您需要了解JSONP

您可以在此处找到更多详细信息:How to call external webservice using jquery "jsonp"?

另请注意,jsonp jquery结果与@Craig White的答案相同:Using JQuery To make cross domain Ajax Calls

答案 1 :(得分:1)

我更喜欢包含从其他域生成的javascript文件,该文件可以为我提供信息。

<script type="text/javascript" src="http://otherdomain.com/data.php"></script>

您可以动态添加如下脚本:

    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    s.src = 'http://otherdomain.com/data.php?&timestamp=' + new Date().getTime(); //Added to deter caching
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);

答案 2 :(得分:0)

浏览器阻止JavaScript对另一个域进行ajax调用。

您可以做的是,您在域上创建一个本地asp文件,该文件读取另一个域上的数据并调用它。

答案 3 :(得分:0)

您的问题是所有浏览器阻止跨网站请求。您需要将页面与服务器放在同一页面上,或将服务器设置为允许跨站点请求。 看看http://www.easywms.com/easywms/?q=en/how-send-cross-site-request-ajax

相关问题