Javascript Backbonejs最简单的集合获取
我正试图从使用Backbone.js从服务器接收的XML中下载、解析并显示一个列表。代码如下:Javascript Backbonejs最简单的集合获取,javascript,ajax,backbone.js,Javascript,Ajax,Backbone.js,我正试图从使用Backbone.js从服务器接收的XML中下载、解析并显示一个列表。代码如下: var Item = Backbone.collection.extend({ url: "http://myurl.com/file.xml", parse: function() { console.log("parse"); }, success: function(data) { console.log(data); },
var Item = Backbone.collection.extend({
url: "http://myurl.com/file.xml",
parse: function() {
console.log("parse");
},
success: function(data) {
console.log(data);
},
error: function() {
console.log("error");
}
});
var View1=Backbone.view.extend({
initialize: function() {
var item = new Item();
item.fetch();
}
});
当我在Chrome扩展中检查它时,XML文件正在下载,但是放置在解析
,成功
,错误
中的断点直接到达错误
它有3个参数,但我无法从中提取任何信息。主干网不支持提取XML,因此,您需要覆盖sync方法以提供您自己的自定义解析功能。如果您不想弄乱主干内部,请尝试先执行$.ajaxget,将响应解析为适当的JSON数组,然后将该数组与 获取请求的服务器处理程序应该返回一个JSON数组 模型 在默认实现中,当Backbone.sync发送请求时 要保存模型,将传递其属性,并将其序列化为JSON, 并以内容类型application/json在HTTP正文中发送。什么时候 返回一个JSON响应,向下发送 已被服务器更改,需要在客户端上更新。 响应集合中的“读取”请求时 (Collection#fetch),向下发送一个模型属性对象数组
我添加了一个缺少的
“
在.xml
之后,当时我正在修复您的缩进。我假设这只是您的示例中的一个输入错误,您的真实代码是否在所有正确的位置都有双引号?@rock\u-win断点是否曾在parse方法中命中log
?你试过其他浏览器吗?xml是否具有正确的mime类型?不,它从不在解析方法中出现,我尝试添加主干.sync()
,它确实在登录到error
之前出现,但它具有相同的参数,我也尝试调试并返回主干的源代码,但它来自主干的某个包装器,它试图包装已经生成的错误(不确定,它是在哪里生成的)我尝试用普通的$.ajax下载XML-它来了-你能在控制台中发布你得到的错误吗?看起来可能违反了跨域访问策略-XML是否与您尝试从中访问它的服务器位于同一个域上?