Javascript window.location.href don';我不能使用AJAX
出于某种原因,“window.location.href”功能对我不起作用,似乎无法找到原因。 这是index.php中的代码:Javascript window.location.href don';我不能使用AJAX,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,出于某种原因,“window.location.href”功能对我不起作用,似乎无法找到原因。 这是index.php中的代码: <div class="dropdown-menu"> <div style="width: 300px;"> <div class="panel panel-primary"> <div class="pan
<div class="dropdown-menu">
<div style="width: 300px;">
<div class="panel panel-primary">
<div class="panel-heading">Login</div>
<div class="panel-heading">
<label for="email">Email</label>
<input class="form-control" id="email" name="email" required />
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password" required />
<p><br/></p>
<a href="#">Forgotten Password</a><input type="button" class="btn btn-success" name="login" id="login" value="Login">
</div>
</div>
<div class="panel-footer"></div>
</div>
</div>
<?php
if(isset($_POST["userLogin"])){
$email = mysqli_real_escape_string($con, $_POST["userEmail"]);
$password = md5($_POST["userPassword"]);
$sql = "SELECT * FROM user_info WHERE email = '$email' AND password = '$password'";
$run_query = mysqli_query($con, $sql);
if($run_query===false){
echo mysqli_error($con);
} else {
$row = mysqli_fetch_array($run_query);
$_SESSION["uid"]= $row["user_id"];
$_SESSION["name"]= $row["first_name"];
echo "welcome";
}
}
?>
$(document).ready(function(){
$("#login").click(function(event){
event.preventDefault();
var email = $("#email").val();
var pass = $("#password").val();
$.ajax({
url : "action.php",
method : "POST",
data : {userLogin: 1, userEmail:email, userPassword:pass},
success : function(data){
if(data == "welcome"){
window.location.href = "profile.php";
}
/* alert(data);*/
}
});
});
});
注意事项:
正如您在jQuery函数中所看到的,有这样一个:“警报(数据);”。我想看看它是否有效,并将其放在屏幕上,而不使用“window.location.href”函数,以查看“if”语句是否正确,是否有效。此外,当我直接转到profile.php文件时,我看到用户已登录,这意味着SQL函数工作正常,只是它不会将我重新指向该(profile.php)页面。
window.location.href
需要一个绝对url或相对于您的域的url(如果它以/开头)
如果只想更改当前路径的文件部分,如果要在同一域内重定向,可以使用window.location.assign(“profile.php”)
window.location.href = "/profile.php";
如果你想重定向到另一个域
window.location.href = "http://www.antotherdomainname.com/profile.php";
@夏洛特德诺不,你没有。如果您现在执行window.location.href=“/subdir”
,您将被带到http://stackoverflow.com/subdir
我认为他缺少正斜杠是导致错误的原因。您未能测试if语句是否有效。在来到这里并发布题为“window.location.href不起作用”的问题之前,您应该将该行直接粘贴到您的控制台中,从而证明它确实在工作。然后回到绘图板,找出什么实际不起作用。最有可能的是if(data==“welcome”)
为false,因为您(可能)无意中在php文件中打印了一些空白。在检查==“welcome”(欢迎)之前尝试修剪ajax结果:if($.trim(data)==“welcome”)
这不是只有在发送到其他主机时才需要的吗?不,不需要绝对路径。您确实需要一个相对的起始/
,但仅此而已。这取决于。当我在www.example.com/foo/bar
上并使用window.location.href=“/baz”
时,我将被重定向到www.example.com/baz
。如果我想进入www.example.com/foo/bar
,我会使用window.location.href=“/foo/baz
或window.location.assign(“baz”)
是的,它是相对于域名的。不。你不需要完整的URL。我们可以停止吗?是的,对不起,如果你在你的域内重定向,则不必放置完整的URL。但是如果你重定向到另一个域(网站)然后必须输入完整的url。我说得对吗?@BiswajitPanday说得对,但这里显然不是这样。