在我的REST服務器中,它要求access_token存在於每個請求中。即在發佈數據時,需要將access_token與屬性一起提交。在backbone.js中添加access_token
如何配置backbone.js來爲每個GET,PUT,POST和DELETE請求添加access_token?
謝謝。
在我的REST服務器中,它要求access_token存在於每個請求中。即在發佈數據時,需要將access_token與屬性一起提交。在backbone.js中添加access_token
如何配置backbone.js來爲每個GET,PUT,POST和DELETE請求添加access_token?
謝謝。
Backbone使用jQuery/Zepto進行AJAX請求,因此您可以使用這些庫中提供的功能。
要將自定義標頭添加到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' }
}
);
Hello fencliff。如果我想讓access_token在數據有效載荷中而不是在標題中,我該如何實現呢?我是否.ajaxSend(函數(e,jqxhr,設置){settings.data.access_token ='mytoken'})它? – Mikko
也可以這樣做 - 但是您確定要將access_token添加到GET和DELETE請求中嗎?提供使用這些動詞的請求主體並不常見,而且大多數Web服務器無論如何都會忽略主體。 – jevakallio
其實我使用的是https://github.com/philsturgeon/codeigniter-restserver REST服務器,當我檢查源代碼時,他們依賴於請求主體。 – Mikko