tom*_*umb 2 xml ajax parsing backbone.js
我正在使用Backbone.js构建一个通常通过JSON与Web服务通信的应用程序.
一个Web服务将在成功时返回JSON,或者在错误中返回XML(聪明,是吧?).我需要解析这个XML响应以确定错误,但Backbone的以JSON为中心的思想导致了我的问题.
我有一个包含解析功能的集合.当服务返回JSON时,总是调用parse函数,在这种情况下,我只返回响应对象.然而,当服务返回XML我取通话的错误回调函数被调用,并与传递一个错误的对象arguments[1]的parseerror.进一步挖掘表明有一个意想不到的<特征.
为什么在抛出parseerror之前没有调用我的parse函数来解析XML?此外 - 为什么在成功的JSON调用中,它传递了一个JavaScript对象(表明JSON字符串已被解析)?是不是解析函数应该进行解析?
以下相关代码,任何建议非常感谢.
var myCollection = Backbone.Collection.extend({
initialize : function() {
...
},
fetch: function(options) {
var options = {data: {...}, error: this.onFetchError};
Backbone.Collection.prototype.fetch.call(this, options);
},
onFetchError: function(arg1, arg2, arg3) {
debugger
},
parse: function(response) {
debugger
if(typeof response === 'object') {
return response;
}
}
});
return myCollection;
Run Code Online (Sandbox Code Playgroud)
文档对此很模糊. Model.fetch([options])用途Backbone.sync.该用于同步文档说,你可以使用"所有其他的jQuery请求选项",意思是通过支持任何jQuery.ajax.
因此,要将响应作为原始文本,您可以执行以下操作:
this.fetch({ dataType: 'text' });
然后在您的parse函数中,您可以根据需要处理响应.
旁注:在尝试获取模型以获取XML并使用该dataType进行测试时,我想到了这一点.
| 归档时间: |
|
| 查看次数: |
4177 次 |
| 最近记录: |