javascript - 跨域AJAX读取XML

标签 javascript jquery xml cross-domain jsonp

这里是新手。我正在编写需要从另一个域读取 XML 文件的客户端脚本。我尝试使用 JSONP。我收到 200 响应,但客户端出于某种原因无法访问返回的数据。我收到两个错误:

Resource interpreted as Script but transferred with MIME type text/xml

Uncaught SyntaxError: Unexpected token <

这是代码(我已经删除了 XML url,因为它是 secret 的):

$(document).ready(function() {
  $.getJSON("urlOfFilecallback=?", function(data) {
  console.log(data)
 })
});

当我尝试在控制台中呈现数据时,我得到:

ReferenceError: data is not defined

我该如何解决这个问题?我需要使用代理吗?

最佳答案

您不必编写自己的代理。如果您愿意,可以使用 YQL,这里是一个示例:

//sample site that returns xml
site = 'http://goo.gl/9iQWyG';


var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + site + '"') + '&format=xml&callback=?';

// Request that YSQL string, and run a callback function.
// Pass a defined function to prevent cache-busting.
$.getJSON(yql, function(data){
    console.log(data.results[0]);
});

这里是 jsfiddle检查 console.log。

(公共(public) YQL API 的 Usage limits 是每个 IP 每小时 2,000 个请求)

关于javascript - 跨域AJAX读取XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279603/

相关文章:

PHP SoapClient 发送转义的 XML 字符

java - 为什么 org.w3c.dom 中的 getNodeValue() 不能解析 ü、ö、ä 和 &c.?

javascript - 如何在节点js中获取日期中的日期名称

javascript - 在游戏循环中处理键盘交互 - javascript

javascript - 如何编写函数以便内部应用程序隐式接收外部参数?

jquery - 在 fancybox 中加载图像 150% 的大小

javascript - doc.save() 与 jspdf 抛出错误

c# - 从表示嵌套属性的字符串列表构造 XML

javascript - jQuery .each() 不会独立迭代

jquery - 根据值更改大小