使用JQuery获取Xml数据跨域

时间:2010-05-31 09:42:07

标签: jquery ajax cross-domain

嘿伙计们,有没有办法用JQuery(=客户端)加载XML数据跨域?

$.get('http://otherdomain.com/data.xml', function(xml) { }

以上不起作用 - 我是否必须依赖JSONP,还是有办法加载XML?

4 个答案:

答案 0 :(得分:2)

无法加载XML。所以是的,使用“标准”xmlhttprequests你需要JSONpadding。

如果服务器支持“Cross-Origin Resource Sharing (CORS)”,您可以轻松接收 来自外国域的数据。 这意味着,您必须在XmlHttpRequest('Origin')和服务器中添加自定义标头 决定是否允许请求。

答案 1 :(得分:1)

您需要使用 JSONP

答案 2 :(得分:0)

我发现使用Chrome时,一些jsonp技术无法正常工作。

您选择json并获取跨域错误或jsonp并且无法识别xml格式,因为等待jsonp格式。

因此,解决方案是使用Yahoo Query Language api检索所有浏览器上的数据,而不会出现跨域错误。

有很多方法可以调用链接并使用xml数据。

我无法发布我的代码,但您可以在网上轻松找到代码段。

所以你必须定义你的url来使用encodeURI方法查询yahoo api。 getJSON方法来自jQuery,然后使用原始xml解析一组文本结果。

答案 3 :(得分:-1)

我们很容易从某些php函数中获取数据,如file_get_content和curl(因为我是Php / ROR dev,其他语言具有相同的功能)。使用这些函数,我们可以从外部域获取xml数据,

现在问题是为什么我们在使用AJAX时无法做同样的事情, 根据我的理解,curl和file_get_content函数不会调用http请求而Ajax会这样做。

简而言之,我们无法使用AJAX加载xml数据。