Я создаю приложение Sencha Touch 2 с пользовательскими наборами данных.
Приложение Sencha Touch Серверная часть Java Server со службами REST (много запросов AJAX =))
На самом деле у меня есть:
The app gets initialized and the loginform comes into play. After submitting the form as a AJAX request, the server backend checks the userdata and calls the client callback function.
И то, что я хочу сделать, это:
Ладно, не должно быть проблем.
Но как я могу добиться следующего:
Большая часть данных специфична для одного пользователя и должна быть возвращена службой REST при необходимости (путем нажатия на навигацию,... ).Как я могу отправить сеансовый токен (, см. выше ), в каждом запросе AJAX -, чтобы сервер мог предоставить подходящие наборы данных (, предполагая, что токен действителен )?
Отправлять файлы cookie в запросах AJAX
Я уже читал, что файлы cookie автоматически добавляются в запрос, если URL-адрес находится в том же месте, верно? Сервер Java находится в том же домене (localhost :8080 ), но файлы cookie недоступны -вместо запросов по URL-адресам, таким как «app.json». Я думал, что междоменные запросы --действительно зависят от домена?
Отправлять параметры в запросах AJAX
Поскольку файлы cookie не являются avi, я подумал о возможности «вручную» добавлять параметры к запросам ajax. Приложение будет содержать много запросов AJAX, и поэтому я не хочу добавлять токен вручную -Я пытался переопределить функцию запросов Ext.Ajax , но мне это не удалось;-(:
(function() {
var originalRequest = Ext.data.Connection.prototype.request;
Ext.override(Ext.data.Connection, {
request : function(options) {
alert("Do sth... like add params");
return originalRequest.apply(this, options);
}
});
})();
ОШИБКА:
Uncaught Error: [ERROR][Ext.data.Connection#request] No URL specified
Я также пытался добавить слушателя
Ext.Ajax.add({
listeners : {
beforerequest : function( conn, options, eOpts ){
alert("Do sth... like add params");
}
}
});
ОШИБКА:
Uncaught TypeError: Object [object Object] has no method 'add'
Любая идея о том, как я могу добавить токен?
Или какой-нибудь лучший способ справиться с этим случаем?
Спасибо!