9

必要なデータを取得するために、いくつかのデータをその URL に POST する必要があるコレクションがあります。これら 2 つの質問に対する答えは、POST 要求を使用してコレクションをフェッチしますか? バックボーンモデルの fetch() メソッドをオーバーライドすると、次のように機能させることができるはずだと思われます。

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

、しかし Firebug はまだ問題の URL に対して GET が実行されているために発生している 404 エラーを表示します (そして、基礎となる Rails ルートは POST のみを許可します)。これは機能するはずですか?もしそうなら、他に何を試すことができますか?そうでない場合、私は何を間違えましたか?

4

1 に答える 1

16

質問をもう一度読んだ後、POSTフェッチ呼び出しごとにフェッチを強制的に使用する方法を次に示します。(コメントありがとうございます)

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

もう 1 つの方法は、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 に答える