目前,我有一个 HTML 页面,它向 Python 服务器发送一个带有登录详细信息的 POST 请求。Python 服务器验证登录,然后通过标头发回一个 cookie(我使用的是 Python 库中内置的 Cookie 类)。我想在获得 200 OK 状态后立即重定向。问题是 cookie 设置得不够快,因此重定向发生在设置 cookie 之前,因此 check_login 页面将显示我尚未登录。
我希望浏览器存储一个 HTTPOnly cookie。XMLHttpRequest API 中是否有一些东西可以让我在存储 cookie 后重定向,或者其他方法?
谢谢!
HTTP请求代码:
var httpRequest = new XMLHttpRequest();
var url = 'http://localhost/login/';
httpRequest.onreadystatechange = function(){
if (httpRequest.readyState == 4) {
if(httpRequest.status == 200) {
window.location = "http://localhost/check_login/";
}
};
httpRequest.open("POST", url,false);
httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
httpRequest.send(/*login details*/);
通过单击按钮调用此请求。如果我返回该按钮所在的页面然后再次单击它,我将始终登录,因为从第一次单击时就已经设置了 cookie。