使用JavaScript(xhttp)发送POST数据(ajax) 函数loadDoc(){ var xhttp=newXMLHttpRequest(); var a=document.getElementById(“名称”).value; var b=document.getElementById(“消息”).value; var postdata=“name=a&message=b”;//这里可能需要值的转义方法,就像您所做的那样 xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ document.getElementById(“demo”).innerHTML=this.responseText; } }; open(“POST”,“/chat/backend input.php”,true); setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”); xhttp.send(postdata); } 名称: 信息:

使用JavaScript(xhttp)发送POST数据(ajax) 函数loadDoc(){ var xhttp=newXMLHttpRequest(); var a=document.getElementById(“名称”).value; var b=document.getElementById(“消息”).value; var postdata=“name=a&message=b”;//这里可能需要值的转义方法,就像您所做的那样 xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ document.getElementById(“demo”).innerHTML=this.responseText; } }; open(“POST”,“/chat/backend input.php”,true); setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”); xhttp.send(postdata); } 名称: 信息:,javascript,jquery,ajax,http,https,Javascript,Jquery,Ajax,Http,Https,为什么这个代码不起作用?我是否做错了什么,当我按下提交按钮时,它不会发布表单中的数据 有人能解释一下我哪里出错了吗 编辑:不是输出表单中的内容,而是输出a和b 首先,不要忘记将id=“message”添加到行:消息: 过帐数据 是吗 <script> function loadDoc() { var xhttp = new XMLHttpRequest(); var a = document.getElementById("name").value; var b

为什么这个代码不起作用?我是否做错了什么,当我按下提交按钮时,它不会发布表单中的数据

有人能解释一下我哪里出错了吗


编辑:不是输出表单中的内容,而是输出a和b

首先,不要忘记将
id=“message”
添加到行:
消息:

过帐数据 是吗

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();

    var a = document.getElementById("name").value;
    var b = document.getElementById("message").value;
    var postdata = "name=a&message=b"; //Probably need the escape method for values here, like you did

  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML = this.responseText;
    }
  };
  xhttp.open("POST", "/chat/backend-input.php", true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhttp.send(postdata);
}
</script>

<form onsubmit="loadDoc()">
Name: <input type="text" name="name" id="name"><br>
Message: <input type="text" name="message"><br>
<input type="submit"></input>
</form>
因此,您发布的值实际上是
“a”
“b”

相反,您需要将
a
b
变量的值添加到
postdata
。简单的字符串连接就可以了,但在您需要转义它们之前(使用),以防它们有特殊字符

因此,请尝试以下方法来修复它更改

var postdata = "name=a&message=b";
// ...
xhttp.send(postdata);
致:


它应该可以工作。

可能重复您不取消表单提交您是否查看了控制台?上面写着什么?----另外,添加一个
id
我添加了那个id,我错过了,但它仍然不起作用!它正在输出a和b。。。而不是形式上的东西
var postdata = "name=a&message=b";
var postdata = "name=" + encodeURIComponent(a) + "&message=" + encodeURIComponent(b);