javascript - 使用ajax jquery提交表单时readyState = 0错误
问题描述
使用 console.log() 调试时出现 readyState=0 错误。表单未将数据发送到 php 文件。
Object { readyState: 0, getResponseHeader: getResponseHeader(e), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(e, t), overrideMimeType: overrideMimeType(e), statusCode: statusCode(e), abort: abort(e), state: state(), always: always(), catch: catch(e)
, … }
readyState: 0
setRequestHeader: function setRequestHeader()
length: 2
name: "setRequestHeader"
prototype: Object { … }
<prototype>: function ()
state: function state()
status: 0
statusCode: function statusCode()
statusText: "error"
then: function then()
<prototype>: Object { … }
这是我为发送数据而编写的 ajax 代码,但警报部分不起作用并显示错误我无法弄清楚为什么 readyState 为零
function send_message() {
var name = jQuery("#name").val();
var email = jQuery("#email").val();
var mobile = jQuery("#mobile").val();
var message = jQuery("#message").val();
console.log("in function")
if (name == "") {
alert('Please enter name');
} else if (email == "") {
alert('Please enter email');
} else if (mobile == "") {
alert('Please enter mobile');
} else if (message == "") {
alert('Please enter message');
} else {
jQuery.ajax({
url: 'send_message.php',
type: 'post',
data: 'name=' + name + '&email=' + email + '&mobile=' + mobile + '&message=' + message,
success: function(result) {
alert(result);
},
error: function(data) {
console.log(data);
}
});
}
}
PS由于stackoverflow代码限制,我缩短了错误消息我想使用JavaScript完成它但在ajax.send()中出现错误
else{
var ajax = new XMLHttpRequest();
ajax.open("POST", "send_message.php", true);
ajax.setRequestHeader("Content-Type", "application/json");
ajax.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = this.responseText;
console.log(response);
alert(response);
}
};
var data = {'name':name,'email':email,'mobile':mobile,'message':message};
ajax.send(JSON.stringify(data));
}