目前,我有一个HTML页面,它向具有登录详细信息的Python服务器发送POST请求。 Python服务器验证登录,然后通过标头发送回cookie(我使用Python库中内置的Cookie类)。我想在200 OK状态下立即重定向。问题是cookie没有足够快地设置,因此重定向发生在设置cookie之前,因此check_login页面将显示我还没有登录。
我希望浏览器存储HTTPOnly cookie。 XMLHttpRequest API中是否有某些内容可以让我在存储cookie后重定向,或者替代方法?
谢谢!
HTTPRequest代码:
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已经从第一次点击设置。