2014-03-04 164 views
0

我发送一个ajax请求到一个php登录后台,可以改变用户和密码,启动会话并发送正面或负面响应。通过ajax请求登录只能在第二次尝试,第一次失败

响应然后通过jquery的翻译成用户消息,并且如果credentioals是正确的,则用户经由

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

问题是重定向到现场的封闭部分,即我总是在浏览器会话的第一次尝试中抛出回登录站点,因为下一个php脚本没有会话并且假定用户没有登录。

回答

0

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

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

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); 
     } 
    } 
}); 
+0

我这样做。但这不是问题。解决方案是,您没有基于ajax登录系统的会话的html入口页面,因为浏览器不会吃html页面中的ajax响应发送给它的phpsessid cookie。我很傻。 – Max

相关问题