私はbackbone-tastypieを使用していますが、正しく動作させるのに最も苦労しています。Tastypieでは、リソースにApiKeyAuthenticationを使用しているため、すべてのajaxリクエストで、リクエストの最後にapikeyとusernameを追加するか、usernameとapiキーを追加する追加のヘッダーを送信する必要があります。
次のコードでバックボーンを使用してビューとそのモデルを削除しようとしています。
// Remove the goal update view from the DOM
removeItem: function() {
this.model.destroy({wait: true, success: function() {
console.log("success");
}, error: function() {
console.log("error");
}});
},
関数の実行後、ブラウザは次のURLでGETリクエストを実行しようとします。
:8000/api/v1/update/2/
末尾にapi_keyまたはusernameが含まれておらず、URLの末尾にスラッシュが付いています。Backbone.oldSyncを使用してGETリクエストを実行しようとしていると思います。同期の最後にユーザー名/APIキーが含まれ、末尾のスラッシュが削除されるようにするにはどうすればよいですか?
他のすべてのリクエストでは、backbone-tastypieに次のコードを追加することで、APIキーとユーザー名がhttpリクエストの最後に追加されるようにしました。
if ( !resp && ( xhr.status === 201 || xhr.status === 202 || xhr.status === 204 ) ) { // 201 CREATED, 202 ACCEPTED or 204 NO CONTENT; response null or empty.
var location = xhr.getResponseHeader( 'Location' ) || model.id;
return $.ajax( {
url: location + "?" + "username=" + window.app.settings.credentials.username + "&api_key=" + window.app.settings.credentials.api_key,
success: dfd.resolve,
error: dfd.reject,
});
}