Я пишу приложение jQuery Mobile, которое выполняет несколько запросов AJAX к нескольким различным IHttpHandler
классам на моем сервере. Все обработчики возвращают JSON или JSONP и включают context.Session.SessionID
в JSON для целей отладки. Я делаю один запрос к первому обработчику и возвращаю идентификатор сеанса "2jysbehwyxlne0knatltcb2z". Я делаю еще один запрос к другому обработчику и возвращаю идентификатор сеанса «qy3v251fxrxesbgqeobqvaza». Это в пределах нескольких секунд друг от друга. Что здесь происходит? Я ожидаю, что идентификатор сеанса будет таким же, пока сеанс не истечет по прошествии длительного времени.
Когда я открываю запросы на их собственных вкладках, а не через AJAX на той же вкладке, я возвращаю тот же идентификатор сеанса. Итак, для моего запроса на аутентификацию, а затем для моего другого запроса на получение данных, когда эти запросы выполняются как запросы AJAX на странице, идентификаторы сеанса разные. Когда я просматриваю вкладку «Сеть» в консоли Chrome и щелкаю правой кнопкой мыши «Открыть ссылку в новой вкладке», каждый из запросов работает, как ожидалось, с тем же идентификатором сеанса.
Я запускаю приложение jQuery Mobile на http://localhost
и делаю запросы обработчикам на https://localhost
, если это важно. Все мои обработчики реализуют IRequiresSessionState
. Этот вопрос выглядит так же, как мой, и его единственный ответ - реализовать IRequiresSessionState
, который Я уже делаю.
Изменить: это вопрос может быть связан, но я наблюдаю такое поведение в Chrome.
Изменить: я использую функцию jQuery getJSON
для выполнения запроса AJAX. Этот вопрос о getJSON
и файлах cookie может быть актуальным.
getJSON
. Я обновлю свой вопрос соответствующей ссылкой. - person Sarah Vessels   schedule 26.06.2012