0
我开始之前,我知道,反应不是JSONP,而是JSON。为什么用jQuery这个AJAX调用工作,但不backbone.sync
所以下面的代码产生的结果:
$.ajax({
type: 'GET',
url: 'http://us.battle.net/api/wow/character/Alexstrasza/Leica?fields=items,stats,talents',
dataType: 'jsonp',
success: function(data){
console.log(data);
},
error: function() { console.log('Uh Oh!'); },
statusCode: {
404: function() {
$().html("not working");
}
},
jsonp: 'jsonp'
});
然而,当我会做骨干完全相同的电话我得到的错误“未捕获的SyntaxError:意外的标记:”(即,它不是JSONP)
define([
'jquery',
'backbone',
'models/results/panel.model'
],
function(
$,
Backbone,
PanelModel
){
var BoxCollection = Backbone.Collection.extend({
model: PanelModel,
url: function(){
return "http://us.battle.net/api/wow/character/Alexstrasza/Leica?fields=items,stats,talents";
},
initialize: function(models, options){
this.path = options.path;
},
sync: function(method, model, options){
options.timeout = 10000;
options.dataType = "jsonp";
options.processData = true;
options.type = 'READ';
options.url = this.url();
return Backbone.sync(method, model, options);
},
parse: function(resp, options){
console.log(resp);
}
});
return BoxCollection;
});
从我的理解,骨干网使用jQuery.ajax作为所有Ajax调用底层方法,我会认为他们将采取行动一样,但显然那不是如此。
谢谢
,就是这样,非常感谢你,先生。 (谷歌类型的人快速评论),options.jsonp是关键 –