9

我有一个 Collection 需要将一些数据发布到它的 url 以获取它需要的数据。这两个问题的答案,Fetch a collection using a POST request? 在骨干模型中覆盖 fetch() 方法,使我看起来应该能够让它像这样工作:

fetch: function( options ) {
  this.constructor.__super__.fetch.apply(this, _.extend(options,{data: {whatever: 42}, type: 'POST'}));
}

,但 Firebug 仍然向我显示正在发生的 404 错误,因为正在针对有问题的 url 执行 GET(并且底层 Rails 路由只允许 POST)。这应该工作吗?如果是这样,我还能尝试什么?如果没有,我做错了什么?

4

1 回答 1

16

再次阅读问题后,这是一种强制 fetch 在POST每次 fetch 调用中使用的方法。(感谢评论)

yourCollection.fetch({
    data: $.param({id: 1234}), 
    type: 'POST', 
    success: function(d){
        console.log('success');
    }
});

另一种方法是覆盖 AJAX 实现本身以POST用于所有调用。

Backbone.ajax = function() {
    var args = Array.prototype.slice.call(arguments, 0);
    _.extend(args[0], { type: 'POST' });
    return Backbone.$.ajax.apply(Backbone.$, args);
};
于 2013-03-12T01:06:19.497 回答