Php 使用ajax成功登录后传递到另一个页面
我试图在登录后转到另一个页面,那么如何在使用Ajax和php成功登录后转到另一个页面?当ajax向php发送一个请求,然后得到类似这样的响应时(如果响应为('true')或('false'),则此响应取决于检查用户名和密码),因此我不知道如何在ajax中处理此响应,以将其作为传递到下一页的条件。请帮忙Php 使用ajax成功登录后传递到另一个页面,php,ajax,Php,Ajax,我试图在登录后转到另一个页面,那么如何在使用Ajax和php成功登录后转到另一个页面?当ajax向php发送一个请求,然后得到类似这样的响应时(如果响应为('true')或('false'),则此响应取决于检查用户名和密码),因此我不知道如何在ajax中处理此响应,以将其作为传递到下一页的条件。请帮忙 function doCallAjax(Mode) { HttPRequest = false; if (window.XMLHttpRequest) { // M
function doCallAjax(Mode) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'PHP_Login.php';
var pmeters = "tEmail=" + encodeURI( document.getElementById("Email").value) +
"&tpassword=" + encodeURI( document.getElementById("password").value ) +
"&tMode=" + Mode;
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
document.getElementById("Email").value = '';
document.getElementById("password").value = '';
}
}
}
该系统通常的工作方式是在后端进行身份验证时,php通常创建一个会话变量(无论是否登录),然后返回响应。一旦得到响应,您所要做的就是使用javascript的
window.location()
或window.href
函数在javascript中重定向。我不知道我必须编写什么类型的条件来处理来自php的响应,以便传递到下一页if(HttPRequest.readyState==4)//返回请求{document.getElementById(“mySpan”).innerHTML=HttPRequest.responseText;
这是您必须检查的地方。通常通过从phpi发回json响应来完成。我知道我问了很多问题,但我如何才能设置条件,将其与来自php的“真”或“假”响应进行比较,然后如果它是真的,则转到下一页?响应文本看起来像什么我的意思是HttPRequest.responseText
?您可以进行字符串比较,或者如果是JSON字符串,您可以使用JSON.parse(theString)
方法将其对象化。例如,如果响应是{“错误”:“无”,“登录”:true}
,则可以使用var response=JSON.parse(HttPRequest.responseText);if(response.login==true){window.location='user\u data.php')}