2011-04-07 107 views
0

当我的asmx webservice位于不同的域中时,下面的代码似乎不起作用。有什么我失踪?使用JQuery进行跨域Ajax调用

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 
      }); 
     } 

谢谢...

+0

你使用Chrome? Chrome不允许跨网域使用网络服务。使用JSon。 – 2011-04-07 05:37:50

回答

0

苏氨酸的浏览器防止使得Ajax JavaScript调用到另一个域。

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

1

我更喜欢包含从其他域可以给我的信息生成的javsacript文件。

<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); 
+1

好吧,这是发送'http'请求,而不是'async' ajax,我想那是什么'谷歌'呢..仍欢呼! – 2011-04-07 05:46:24

+0

已更新为动态方法。 – 2011-04-07 05:48:00