私のRESTサーバーでは、すべてのリクエストにaccess_tokenが必要です。つまり、POSTingデータでは、access_tokenを属性とともに提出する必要があります。backbone.jsにaccess_tokenを追加
backbone.jsを設定して、GET、PUT、POST、DELETEリクエストごとにaccess_tokenを追加するにはどうすればよいですか?
ありがとうございました。
私のRESTサーバーでは、すべてのリクエストにaccess_tokenが必要です。つまり、POSTingデータでは、access_tokenを属性とともに提出する必要があります。backbone.jsにaccess_tokenを追加
backbone.jsを設定して、GET、PUT、POST、DELETEリクエストごとにaccess_tokenを追加するにはどうすればよいですか?
ありがとうございました。
バックボーンは、AJAXリクエストに対してjQuery/Zeptoを使用するため、これらのライブラリで使用できる機能を使用できます。
jQueryのすべてのXHR呼び出しにカスタムヘッダーを追加するには、すべてのajax要求の前にトリガーされるjQuery.ajaxSend eventを使用して、受け取るjqXHRを引数として変更します。 OPのコメントに基づいて
編集:おそらく
送られたデータを修正する最も簡単な方法は、Backbone.sync関数をオーバーライドすることです。あなたはネイティブ実装をラップし、そこに必要なプロパティを追加することができます。
var nativeSync = Backbone.sync;
Backbone.sync = function (method, model, options) {
//for POST/PUT requests, add access token to the request
if(model && (method === 'create' || method === 'update')) {
var data = _.extend(model.toJSON(), {
access_token: 'token'
});
options.data = JSON.stringify(data);
}
//call the native Backbone.sync implementation
nativeSync(method, model, options);
};
さて、私は、私はjQueryの中でそれを行うにはどのような方法を見つけたと思います。
$.ajaxSetup (
{
data: { access_token: 'my_access_token' }
}
);
こんにちはfencliff。もし私がaccess_tokenをヘッダーではなくデータペイロード自体に入れたいのであれば、どうすれば実現できますか?私は$ .ajaxSend(function(e、jqxhr、settings){settings.data.access_token = 'mytoken'})それをしますか? – Mikko
これも可能ですが、access_tokenをGETとDELETEリクエストに追加してもよろしいですか?これらの動詞を使用してリクエスト本体を提供するのは一般的ではなく、ほとんどのWebサーバーは本体を無視します。 – jevakallio
実際に私はhttps://github.com/philsturgeon/codeigniter-restserver RESTサーバーを使用しています。ソースコードを確認したところ、リクエスト本体に依存しています。 – Mikko