繁体   English   中英

php或jquery会重定向我吗? Ajax登录

[英]Will php or jquery redirect me? Ajax login

我对php脚本进行了ajax调用,该调用将指示用户输入的信息是否有效,并且将授权他登录。问题是我不确定会话变量。 该php脚本可以保存会话ID变量并将其传递到下一个php页面吗,在此页面上,jQuery将在成功调用ajax时重定向我? 还是PHP本身会使用标头位置重定向我? 我希望我能说清楚。 这是一个理论问题。

您将在会话中设置用户标识,并将“成功”条件返回给ajax。 ajax成功回调将检查返回的数据以确定登录是否成功并采取相应措施(例如,重定向到登录的主页)

在这种情况下,您无法使用PHP进行重定向,因为标头未在http响应中返回。 您可以在响应中设置一个变量,以返回您的php处理状态。 就像是

data = array(
 "connect"=>true
);

要么

data = array(
 "connect"=>false,
 "errors"=>"There is an error in your request"
);

然后在success:函数中,您可以检查变量是true还是false,并根据需要重定向。

success: function(response){
  if(response.connect){
//succeded
}else{
//not succeded
}

希望能有所帮助。 干杯!

我不同意@Mijail的话

在这种情况下,您无法使用PHP进行重定向,因为标头未在http响应中返回

使用jQuery(或普通XHR),您可以验证是否具有响应状态(为3xx之一)的重定向,然后使用xhr对象中的getResponseHeader方法获取'location'标头,以查看应该重定向到'location'

success: function(data, textStatus, xhr) {
    if(xhr.status > 300 && xhr.status < 400) {
        document.location.href = xhr.getResponseHeader('location') || '/';
    }
}

当您也不想在客户端上复制重定向规则时,这是正确的方法。

从理论上讲,您可以使用任何一种方法来完成此操作,但是如果看不到您的实际代码,很难给出明确的答案。

如果您使用jQuery调用auth PHP脚本并在该PHP脚本中设置会话,则可能会成功使用JS(Ajax)重定向到“受保护”区域(会话启动时从PHP脚本返回) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM