【问题标题】:Why does this ajax call work with jQuery but not backbone.sync为什么这个 ajax 调用适用于 jQuery 而不是backbone.sync
【发布时间】: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


    【解决方案1】:

    您的 Backbone 版本缺少 jsonp 参数。试试

    sync: function(method, model, options){
        options.timeout = 10000; 
        options.dataType = "jsonp"; 
        options.processData = true;
        options.type = 'READ';
        options.url = this.url();
        options.jsonp = 'jsonp';
        return Backbone.sync(method, model, options);
    }
    

    还有一个演示 http://jsfiddle.net/nikoshr/8A6n4/

    【讨论】:

    • 就是这样,非常感谢您,先生。 (谷歌类型的人的快速评论),options.jsonp 是关键
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多