而不是POST
请求,不知何故GET
被触发。
其次,没有调用ajax调用。
我已经这样做了一百次,但我尝试的一切似乎什么也没做。这可能是某种程度上我的错,但请帮忙。如果您还需要更多信息,请询问。此致
$(document).ready(function(){
console.log("bro");
$("#login").click(function () {
console.log("hi");
var name = $('#uname').val();
var password = $('#password').val();
console.log(name);
console.log(password);
$.ajax({
url:"login-check.php",
data: {name:name, password:password},
dataType:"text",
method:"POST",
success:function(data){
if(data === "1" || data === "2"){
alert(data);
console.log("hello");
window.open('index.php','_self');
}
else{
}
}
});
});
});
HTML:
<!-- Form Code -->
<div class = "container">
<h2 style="text-align:center;">Please Fill the form to Sign up</h2>
<form class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" for="name">Username:</label>
<div class="col-sm-10">
<input type = "username" class = "form-control" name = "uname" id = "uname" placeholder = "username" required autofocus>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Password:</label>
<div class="col-sm-10">
<input type = "password" class = "form-control" name = "password" id = "password" placeholder = "password" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button class="btn btn-primary" name = "login" id="login">Sign In</button>
</div>
</div>
</form>
Click here to clean <a href = "logout.php" tite = "Logout">Session.
</div>
答案 0 :(得分:1)
因为您的按钮位于form
标记内且没有type
属性,所以它在提交按钮并在调用ajax之前提交表单(默认表单方法是GET)顺便说一句)
详细说明:
method
属性的表单是
使用GET
方法提交button
标记内未明确设置form
属性的任何type
都将设置为type="submit"
html
中设置任何属性,所以当您单击按钮时,它会在触发点击处理程序以调用ajax之前使用GET方法提交表单type="button"
(这就是我要做的)e.preventDefault
以取消提交实际表单的默认行为form
标签之外(你说你试过这个没有成功,但它确实有效see this jsFiddle所以我想你没有把它移动得足够远)正如Terry在评论中提到的那样,您还应该在表单上明确设置action
和method
属性,如:
<form action="login-check.php" method="post" class="form-horizontal">
这将确保即使用户已禁用javascript也能正常登录,并且通常是一种良好的做法。
答案 1 :(得分:-1)
问题在于:
method:"POST",
应该是:
type: "POST",
数据类型的定义是:
contentType: "text/plain",
编辑:ajax调用的完整代码
var dataString = 'name=' + name + '&password=' + password;
$.ajax({
type: "POST",
url:"login-check.php",
data: dataString,
success: function(data){
if(data === "1" || data === "2"){
alert(data);
console.log("hello");
window.open('index.php','_self');
}
else{
}
}
});
答案 2 :(得分:-2)
我认为问题在于你的ajax调用的定义。 我建议像这样传递一个json对象:
var obj = {username:un,密码:pwd};
然后你可以通过字符串化将这个对象传递给调用:
dataType:'json', data:JSON.stringify(obj)
希望有所帮助。