Пиша jQuery Mobile приложение, което прави няколко AJAX заявки към няколко различни IHttpHandler
класа на моя сървър. Всички манипулатори връщат JSON или JSONP и включват context.Session.SessionID
в JSON за целите на отстраняване на грешки. Правя една заявка към първия манипулатор и получавам обратно ID на сесията „2jysbehwyxlne0knatltcb2z“. Правя друга заявка към различен манипулатор и получавам обратно ID на сесията „qy3v251fxrxesbgqeobqvaza“. Това е в рамките на няколко секунди едно от друго. Какво става? Очаквам идентификаторът на сесията да бъде същият, докато сесията изтече след продължително време.
Когато отворя заявките в техните собствени раздели, за разлика от чрез AJAX в същия раздел, получавам обратно същия идентификатор на сесията. Така че за моята заявка за удостоверяване и след това за другата ми заявка за извличане на данни, когато тези заявки се случват като AJAX заявки в страница, идентификаторите на сесията са различни. Когато преглеждам раздела Мрежа в конзолата на Chrome и щраквам с десния бутон върху Отваряне на връзката в нов раздел всяка от заявките, те функционират според очакванията, като имат същия идентификатор на сесия.
Изпълнявам мобилното приложение jQuery на http://localhost
и правя заявки към манипулатори на https://localhost
, ако това има значение. Всичките ми манипулатори изпълняват IRequiresSessionState
. Този въпрос изглежда същият като моя и единственият му отговор е да се приложи IRequiresSessionState
, което Вече го правя.
Редактиране: това въпрос може да е свързано, но наблюдавам това поведение в Chrome.
Редактиране: Използвам функцията getJSON
на jQuery, за да направя AJAX заявката. Този въпрос относно getJSON
и бисквитките може да е подходящ.
getJSON
на jQuery. Ще актуализирам въпроса си със свързана връзка. - person Sarah Vessels   schedule 26.06.2012