我正在编写一个 jQuery Mobile 应用程序,该应用程序向IHttpHandler
我的服务器上的几个不同类发出多个 AJAX 请求。处理程序都返回 JSON 或 JSONP,并包含context.Session.SessionID
在 JSON 中,用于调试目的。我向第一个处理程序发出一个请求,并取回会话 ID“2jysbehwyxlne0knatltcb2z”。我向另一个处理程序发出另一个请求,并取回会话 ID“qy3v251fxrxesbgqeobqvaza”。这是在几秒钟之内。到底是怎么回事?我希望会话 ID 是相同的,直到会话在延长时间后过期。
当我在他们自己的选项卡中打开请求时,而不是通过同一选项卡中的 AJAX,我得到相同的会话 ID。因此,对于我的身份验证请求和其他检索数据的请求,当这些请求作为页面中的 AJAX 请求发生时,会话 ID 是不同的。当我浏览 Chrome 控制台中的网络选项卡并右键单击,在新选项卡中打开链接每个请求时,它们按预期运行,具有相同的会话 ID。
如果这很重要,我正在运行 jQuery Mobile 应用程序http://localhost
,并向处理程序发出请求https://localhost
。我所有的处理程序都实现了IRequiresSessionState
. 这个问题看起来和我的一样,它唯一的答案是实现IRequiresSessionState
,我已经在做。
编辑: 这个问题可能是相关的,但我在 Chrome 中观察到这种行为。
编辑:我正在使用 jQuery 的getJSON
函数来发出 AJAX 请求。 这个关于getJSON
cookie 的问题可能是相关的。