代码之家  ›  专栏  ›  技术社区  ›  Dänu

使用jquery跨域获取XML数据

  •  3
  • Dänu  · 技术社区  · 16 年前

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

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

    上面的内容不起作用——我必须依赖JSONP,还是有方法加载XML?

    4 回复  |  直到 11 年前
        1
  •  1
  •   Sarfraz    16 年前

    你需要使用 JSONP .

        2
  •  2
  •   jAndy    16 年前

    无法加载XML。所以,是的,使用“标准”xmlhttprequest,您需要jsonpadding。

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

        3
  •  0
  •   mantisse    11 年前

    我发现在Chrome中,一些JSONP技术不起作用。

    要么选择JSON并获得跨域错误,要么JSONP和XML格式无法识别,因为正在等待JSONP格式。

    因此,解决方案是使用雅虎查询语言API来检索所有浏览器上的数据,而不会出现跨域错误。

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

    我不能发布我拥有的代码,但是你很容易在网上找到代码片段。

    所以你必须定义你的URL来用encodeuri方法查询雅虎API。getjson方法来自jquery,然后使用原始XML解析文本结果数组。

        4
  •  -1
  •   Neel    15 年前

    好吧,我们可以很容易地从一些PHP函数中获得数据,比如文件获取内容和curl(就像i php/ror dev一样,其他语言也有相同的函数)。使用这些函数,我们可以从外部域获取XML数据,

    现在的问题是为什么我们在使用Ajax时不能做同样的事情, 根据我的理解curl和file-get-content函数不调用HTTP请求,而ajax调用。

    简而言之,我们不能使用Ajax加载XML数据。