ジャックが述べたように、最初の問題は、を使用idAttribute
する必要があるときに使用している可能性があるようですid
。それはさておき、PUTに関する問題は2つの方法で解決できます。
1つ目は、代わりにPOSTを使用するようにBackboneに指示することです。これを行う1つの方法はisNew
、Asheley Rossが提案したように、モデルを上書きすることです。または、BackboneにネイティブisNew
メソッドを使用させ、ID属性を削除することでモデルを新しいものとして処理するように強制することもできます(ネイティブisNew
チェックは単なるthis.id == null
)。次に、IDを別の属性で渡すか、モデルのプロパティ(属性ではなく)として保存し、モデルのtoJSON
メソッドを使用して、サーバーに送信する直前にIDを追加し直すことができます。
GETとPOSTを除くすべてのHTTP操作を回避できる2番目の方法は、を設定することBackbone.emulateHTTPBackbone = true;
です。これにより、Backboneは代わりにPOSTを使用X-HTTP-Method-Override
し、実際のタイプ(例PUT
)を含む追加のリクエストヘッダーを渡すだけになります。