2015-04-13 5 views
0

У меня есть API RESTful json, который мне нужен для доступа на моем интерфейсном сайте Backbone.Магистральный JSONP вызов из RESTful json API не работает

Итак, я сделал это:

/* Goal collection */ 
var GoalCollection = Backbone.Collection.extend({  
    model: GoalModel, 
    url: "http://staging.api.hiwarren.com:8080/api/v1/goals/?callback=?", 
    sync: function(method, collection, options) { 
     options.dataType = "jsonp"; 
     // options.timeout = 10000; 
     return Backbone.sync(method, collection, options); 
    }, 
    parse: function(response) { 
     return response.results; 
    } 
}); 
/* View for the goal collection */ 
var GoalCollectionView = Backbone.View.extend({ 

    tagName: 'ul', 

    initialize: function(callback){ 
     var that = this; 

     _.bindAll(this, 'render'); 
     that.collection = new GoalCollection(); 
     that.collection.bind('reset', this.render) 

     that.collection.fetch({ 
      dataType: 'jsonp', 
      success: function(collection, response){ 
       that.render(); 
       if(callback) callback(that); 
      }, 
      error: function(collection, response){ 
       throw new Error("Goal fetch error - " + response.statusText); 
      } 
     }); 
    }, 

    render: function(){ 
     this.collection.each(function(goal){ 
      var goalView = new GoalView({ model: goal }); 
      this.$el.append(goalView.render().el); 
     }, this); 

     return this; 
    } 
}); 

Я пытаюсь использовать JSONP, потому что это другой домен. Я следовал ответам на вопросы, подобные этому, как вы можете видеть в моем коде, но это не сработает.

Вместо этого я получаю сообщение об ошибке:

Uncaught Error: Goal fetch error - load 
    Backbone.View.extend.initialize.that.collection.fetch.error 
    options.errorjquery.js:3094 jQuery.Callbacks.fire 
    jQuery.Callbacks.self.fireWithjquery.js:8261 done 
    jQuery.ajaxTransport.send.jQuery.prop.on.callback 
    jQuery.event.dispatchjquery.js:4116 jQuery.event.add.elemData.handle 

Что я делаю неправильно? Как я могу сделать эту работу?

ответ

1

Уверены, что домен, к которому вы пытаетесь получить доступ, поддерживает jsonp? На некоторых сайтах только формат json.

Смежные вопросы