Не видит файл cookie состояния сетки ExtJS во время запроса ajax - PullRequest
1 голос
/ 24 ноября 2010

У меня есть сетка ExtJS со следующим:

// Инициализировать менеджер состояний

Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

// Установить идентификатор состояния

stateful:true,    
stateId:'Vehicle-grid', 

Я былвозможность получить cookie по обычному HTTP-запросу.Когда я пытаюсь отправить jQuery ajax-запрос, я не вижу куки на стороне сервера.Все, что я вижу, - это jsessionid.

Чего мне не хватает?

Я могу вставить весь код, если необходимо, но мне было просто интересно, упустил ли я что-то фундаментальное о том, как все это работает.

Спасибо, Ян

PS - На заднем торце у меня есть этот код (контроллер Grails):

def allCookies = request.cookies;
for (c in allCookies) {
    println "\n"+c.name+"\n";
}

Я печатаю только JSESSIONID.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2010

Похоже, я понял это.

Я по глупости не понял, что cookie-файлы устанавливаются только после запуска определенных событий в сетке, а не при инициализации, не имеет ничего общего с обычным запросом противзапрос ajax.

Спасибо за помощь в любом случае McStretch.

0 голосов
/ 24 ноября 2010

Вы хотите отправить запрос ajax с ExtJS, а не через jQuery. jQuery по сути не имеет представления о переменных / объектах состояния ExtJS (это две разные библиотеки javascript), поэтому cookie не будет обрабатываться так, как вы ожидаете. Я предполагаю, что обычный HTTP-запрос, который вы упомянули, был обработан ExtJS, поэтому вы увидели ожидаемое поведение cookie.

Вот пример того, как запустить AJAX-запрос с ExtJS:

// Basic request
Ext.Ajax.request({
   url: 'foo.php',
   success: someFn,
   failure: otherFn,
   headers: {
       'my-header': 'foo'
   },
   params: { foo: 'bar' }
});

Дополнительную информацию можно найти в документации API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...