我使用jquery ajax + form.submit()方法时遇到问题。当我提交表单时,它总是在Ajax请求中触发错误部分。请求状态始终为200 OK,但Firebug中的Response仅显示整个html文档。
这是我的表格
<form method="GET" id="login_form">
<input class="text_field" type="text" placeholder="El. paštas" name="email_inp"/>
<input class="text_field" type="password" placeholder="******" name="pass_inp"/>
<button id="sign_in">OK</button>
</form>
这是我的jQuery脚本
$(document).ready(function() {
$("#login_form").submit(function() {
$.ajax({
url: 'index.php/notes',
type: 'GET',
dataType: 'json',
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic ZWdpczoxMjM0NTY=');
},
error: function(jqXHR, textStatus, errorThrown){
alert('status: '+ textStatus);
alert('error: '+ errorThrown);
},
success:function(json) {
alert("works");
$('#msg').html(json[0].text);
$('#msg').html(JSON.stringify(json));
}
});
});
});
如果我删除它:
$("#login_form").submit(function() {
});
它工作正常,并在Firebugs http响应和div中标记了数据。
谢谢。
答案 0 :(得分:0)
你遇到了这个问题,因为你没有停止默认事件,对于表单,defaut事件是提交,你选择了ajax来提交表单,所以你应该停止默认的提交事件,
$("#login_form").submit(function(event) {
event.preventDefault();
$.ajax({....});
});
这是解决方案。祝好运 ! :d