【发布时间】:2014-02-11 22:35:09
【问题描述】:
在开始之前,我知道响应不是jsonp,而是json。
所以下面的代码产生了一个结果:
$.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'
});
但是,当我对骨干网进行完全相同的调用时,我收到错误“Uncaught SyntaxError: Unexpected token :”(即,它不是 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;
});
据我了解,Backbone 使用 jQuery.ajax 作为所有 ajax 调用的底层方法,我认为它们的行为相同,但显然情况并非如此。
谢谢
【问题讨论】:
标签: jquery ajax backbone.js