我正在向php登录后端发送ajax请求,该后端会改变用户和密码,启动会话并发送正面或负面的响应。
然后通过jquery将响应转换为用户消息,如果凭证正确,则通过
将用户重定向到网站的封闭部分。 window.location.href('mySecretSite.php')
问题是,我在浏览器会话的第一次尝试时总是被扔回登录站点,因为下一个php脚本没有会话并且假设用户没有登录。
答案 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);
}
}
});