После добавления localstorage в backbone модель, POST запрос ничего не возвращает
Добрый день! Изучаю связку бекбон+jquerymobile, на сервере использую джанго рест фреймворк. Возникла следующая проблема:
1. [код без комментариев] Когда я отправляю на сервер связку логин/пароль в ответ от сервера получаю токен в формате { token: "<mytoken>" }. Я могу его просмотреть запустив console.log(response.token) 2. Далее мне нужно этот токен сохранить в localstorage, чтобы потом передать в хедер (с пом. переопределенного backbone.sync) 3. [код с комментариями] Я добавил в модель localstorage и во вью присваиваю в переменную access_token. Теперь когда я отправляю мои логин/пароль, токен не возвращается а console.log(response.token) возвращает undefined. Что я делаю не так? Кто может объяснить почему после добавления localstorage я не получаю токен. Или как еще можно передавать в хедер полученный токен? Моя модель: var User = Backbone.Model.extend({ defaults: { username: "", password: "" }, url: appConfig.baseURL + "api-token-auth/", //localStorage: new Store('srt') }); Кусок вью: user.save({}, { success: function(model, response) { if (typeof response.token === "undefined") { console.log('Token is undefined'); } else { console.log('Token is exists'); //localStorage.setItem('access_token', response.token); window.workspace.navigate('#', { trigger: true}); return true; }}, error: function(model, response) { var error = JSON.parse(response.responseText) console.log('Error: ' + error.detail); } Переопределенный Backbone.sync: Backbone._sync = Backbone.sync Backbone.sync = function(method, model, options) { options = $.extend({ crossDomain: true , xhrFields: { withCredentials: true } , beforeSend: function(xhr){ xhr.setRequestHeader('Authorization', 'Token ' + localStorage.getItem('access_token')); } }, options); return Backbone._sync(method, model, options); } |
Часовой пояс GMT +3, время: 19:55. |