[英]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.