首页 > 解决方案 > 使用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));
}

标签: javascriptjqueryajax

解决方案


推荐阅读