嘿伙计们,有没有办法用JQuery(=客户端)加载XML数据跨域?
$.get('http://otherdomain.com/data.xml', function(xml) { }
以上不起作用 - 我是否必须依赖JSONP,还是有办法加载XML?
答案 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数据。