2010-04-14 176 views
0

我正在尝试使用Jquery get方法从REST服务中获取XML文档,但它似乎无法下载。仅仅约11秒后,连接消失,我收到一个空白文档。我通过浏览器访问URL来测试URL,并且它可以正常工作(即使需要4分钟才能加载)。Jquery.get无法从REST风格的服务中检索XML

$(document).ready(function() 
{ 
    $.get(
     siteUrl, 
     function(data) { parseXml(data); } 
    ); 
}); 

我使用AJAX方法考虑的,因为你可以设置超时,但是同一个域策略应用,使用它限制了我。有任何想法吗?

+0

在同一个域中? – 2010-04-14 16:03:31

+0

不,但根据RomanArmy的说法,如果.get仅仅是ajax函数的简写,那么为什么它不起作用是有道理的。 – Anton 2010-04-14 18:07:56

回答

0

好了,不用彷徨和阿贾克斯将无法工作,因为它们不是同一个域下,从而违反了Same Origin Policy

为了解决这个问题,我们可以使用.getJson方法(更多信息IBM's site找到)

然而,在我的情况,所需的输出不是JSON,因此,我们可以使用类似YQL from Yahoo to accomplish ...或者只是在您的域上使用代理服务器。

+0

@Anton:顺便说一句,http://api.jquery.com/jQuery.getJSON/也只是ajax调用的一个包装。如果你在url结尾处有一个'callback =?',它只会被视为jsonp。 – R0MANARMY 2010-04-14 20:25:21

+0

没错。使用YQL,你必须将它添加到你的URL中,所以它应该没问题。 – Anton 2010-04-20 17:29:16

0

从文档jQuery.get()

这是一个简写的Ajax功能,这相当于:

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

所以我不知道你意思“但同样的域名政策适用,限制我使用它。“但如果$.get作品,所以会$.ajax