好的,我的问题是我的Ajax成功函数不能正常工作,但在另一个网页上却能正常工作。很烦人,对吧?它们有相同的代码(复制、粘贴和编辑),当然是不同的变量。
工作代码:
$.ajax({
type: 'POST',
url: 'login.php',
data: {
uname: username,
pass: password
},
success: function(html){
alert(html);
if(html=='true') {
$("#add_err").html("right username or password");
window.location="../home.php";
}
else {
$("#add_err").css('display', 'inline', 'important');
$("#add_err").html("<img src='images/alert.png' />Wrong username or password"+username+password);
}
},
beforeSend:function()
{
$("#add_err").css('display', 'inline', 'important');
$("#add_err").html("<img src='images/ajax-loader.gif' /> Loading...")
}
});根据查询的不同,Login.php只会回显单词"true“或"false”。
这是无法工作的代码:
$.ajax({
type: 'POST',
url: 'loginphp.php',
data: {
username1: username,
password1: password
},
success: function(html){
alert(html);
if(html=='true')
{
$("#errorlogin").html("right username or password");
window.location="../php/home.php";
}
else
{
$("#errorlogin").css('display', 'inline', 'important');
$("#errorlogin").html("<img src='images/alert.png' />Wrong username or password"+username+password);
}
},
beforeSend:function()
{
$("#errorlogin").css('display', 'inline', 'important');
$("#errorlogin").html("<img src='images/ajax-loader.gif' /> Loading...")
}
});根据查询的不同,Loginphp.php只会回显单词"true“或"false”。
正如你所看到的,它们在技术上是相同的,但是不起作用的代码,即使当loginphp.php回显为真时,成功函数也会直接转到ELSE。
我知道这是真的,因为我用了"alert(html)“,它真的显示了真。
但是在工作代码中,"if(html=='true')“被触发。我不知道发生了什么..。
发布于 2016-03-18 11:22:24
你应该取消引用:
if(html==true) //or just, if(html)否则,它将查找字符串"true“,这就是它转到else部分的原因。
发布于 2016-03-18 12:54:00
您可以使用if(html){},它将对除false之外的任何html值运行。
发布于 2016-03-18 13:43:45
在结束时试用login.php
echo json_encode(array("msg"=>"true"));或者在成功时,您可以像这样检查
if(html.msg == "true")
{}试一试可能会有帮助
https://stackoverflow.com/questions/36075530
复制相似问题