我有一个使用ajax
存储数据的网站,因此无需刷新页面。我一直打开页面。当会话到期时,我可以手动刷新页面并恢复会话。但是,如果会话过期并且我尝试向服务器发送ajax
请求,则响应将是403 forbidden
错误。
为什么我可以手动刷新页面并恢复会话,但是如果我执行了ajax
请求,则会话未恢复?
我尝试过ajax
请求调用我所在的同一页面,看看是否会导致会话刷新,但无济于事。
根据我的阅读,ajax
请求与手动请求相同。因此,执行ajax
调用应该像重新加载页面一样刷新会话。但显然事实并非如此。
有趣的是,如果我让会话过期(或删除cookie,或从服务器中删除会话文件),然后在for循环中尝试ajax
调用,它将不断返回{ {1}}。然后,如果我打开另一个窗口并加载同一页面,会话将刷新,原始窗口中的403
响应将立即从ajax
更改为403
。
我错过了什么?
(供参考,我在Ubuntu linux上使用CakePHP框架,Nginx web服务器。)