使用JQuery获取Xml数据跨域
嘿伙计们,有没有办法用JQuery(=客户端)加载XML Data Cross-Domain?
$.get('http://otherdomain.com/data.xml', function(xml) { }
以上不起作用 – 我是否必须依赖JSONP,还是有办法加载XML?
您需要使用JSONP 。
无法加载XML。 所以是的,使用“标准”xmlhttprequests你需要JSONpadding。
如果服务器支持“ 跨源资源共享(CORS) ”,您可以轻松地从外部域接收数据。 这意味着,您必须在XmlHttpRequest(’Origin’)中添加自定义标头,服务器会决定是否允许该请求。
我发现使用Chrome时,一些jsonp技术不起作用。
您选择json并获得跨域错误或jsonp和xml格式无法识别,因为等待jsonp格式。
因此,解决方案是使用Yahoo Query Language api检索所有浏览器上的数据,而不会出现跨域错误。
有很多方法可以调用链接并使用xml数据。
我无法发布我的代码,但您可以在网上轻松找到代码段。
因此,您必须使用encodeURI方法定义您的URL以查询yahoo api。 getJSON方法来自jQuery,然后使用原始xml解析一组文本结果。
好吧,我们很容易从一些php函数中获取数据,如file_get_content和curl(因为我是Php / ROR dev,其他语言具有相同的function)。 使用这些函数我们可以从外域获取xml数据,
现在问题是为什么我们在使用AJAX时无法做同样的事情,根据我的理解curl和file_get_content函数不会调用http请求而Ajax会这样做。
简而言之,我们无法使用AJAX加载xml数据。