【发布时间】:2020-12-15 19:18:36
【问题描述】:
有没有办法使用 JQuery(= 客户端)跨域加载 XML 数据?
$.get('http://otherdomain.com/data.xml', function(xml) { }
上面的不行-我必须依赖JSONP,还是有办法加载XML?
【问题讨论】:
标签: jquery ajax cross-domain
有没有办法使用 JQuery(= 客户端)跨域加载 XML 数据?
$.get('http://otherdomain.com/data.xml', function(xml) { }
上面的不行-我必须依赖JSONP,还是有办法加载XML?
【问题讨论】:
标签: jquery ajax cross-domain
无法加载 XML。所以是的,使用“标准”xmlhttprequests 你需要 JSONpadding。
如果服务器支持“Cross-Origin Resource Sharing (CORS)”你可以轻松接收 来自外域的数据。 这意味着,您必须将自定义标头添加到您的 XmlHttpRequest ('Origin') 和服务器中 决定是否允许请求。
【讨论】:
您需要使用JSONP。
【讨论】:
postMessage 和 receiveMessage 与其通信,但 jsonp 更容易。
我发现 Chrome 中的一些 jsonp 技术不起作用。
要么选择 json 出现跨域错误,要么 jsonp 和 xml 格式无法识别,等待 jsonp 格式。
因此,解决方案是使用 Yahoo Query Language api 在所有浏览器上检索数据而不会出现跨域错误。
有很多方法可以调用链接并使用 xml 数据。
我无法发布我拥有的代码,但您可以在网络上轻松找到 sn-ps。
所以你必须定义你的 url 来使用 encodeURI 方法查询 yahoo api。 getJSON 方法来自 jQuery,然后您使用原始 xml 解析一组文本结果。
【讨论】:
好吧,我们可以很容易地从一些 php 函数中获取数据,比如 file_get_content 和 curl(因为我是 Php/ROR dev ,其他语言也有相同的函数)。使用这些函数我们可以从外域获取xml数据,
现在的问题是为什么我们在使用 AJAX 时不能做同样的事情, 根据我的理解,curl 和 file_get_content 函数不会调用 http 请求,而 Ajax 会。
简而言之,我们无法使用 AJAX 加载 xml 数据。
【讨论】: