通过ajax请求登录仅适用于第二次尝试,首先失败

时间:2014-03-04 09:58:15

标签: php ajax session login

我正在向php登录后端发送ajax请求,该后端会改变用户和密码,启动会话并发送正面或负面的响应。

然后通过jquery将响应转换为用户消息,如果凭证正确,则通过

将用户重定向到网站的封闭部分。

window.location.href('mySecretSite.php')

问题是,我在浏览器会话的第一次尝试时总是被扔回登录站点,因为下一个php脚本没有会话并且假设用户没有登录。

2 个答案:

答案 0 :(得分:0)

经过很多头痛后我才解决了。 这个错误像往常一样。所以我分享它,让其他人有机会从我的愚蠢中吸取教训。 后端的起始站点是index.html文件,导致浏览器无法保存由ajax响应传递的会话cookie PHPSESSID。

将“secretsite”的起始页面更改为index.php完全修复了该错误。

答案 1 :(得分:0)

试试这个

$.ajax({
    type: "POST",
    url: reqUrl,
    data: reqBody,
    dataType: "json",
    success: function(data, textStatus) {
        if (data.redirect) {
            // data.redirect contains the string URL to redirect to
            window.location.href = data.redirect;
        }
        else {
            // data.form contains the HTML for the replacement form
            $("#myform").replaceWith(data.form);
        }
    }
});