Javascript 服务器未从XmlHttpRequest获取POST方法体

Javascript 服务器未从XmlHttpRequest获取POST方法体,javascript,post,xmlhttprequest,Javascript,Post,Xmlhttprequest,我有一个客户端JavaScript代码,使用XmlHttpRequest POST方法向服务器发送命令。客户端代码为: var serverURL = "http://myserver.com:3000" function sendCommand(command, argsForCommand) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = recvResponse; xhr.open("POST"

我有一个客户端JavaScript代码,使用XmlHttpRequest POST方法向服务器发送命令。客户端代码为:

var serverURL = "http://myserver.com:3000"

function sendCommand(command, argsForCommand) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = recvResponse;
    xhr.open("POST", (serverURL + "/" + command), true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(argsForCommand);
}
服务器希望POST消息的格式为:

POST HTTP/1.1

..HTTP头

..HTTP头

argsForCommand

i、 e.服务器必须执行的命令是POST行的一部分,参数可以是短的,也可以是长的,都在消息体中

服务器是我自己编写的,并且已经用另一个客户机测试过的,所以我知道服务器端正在工作。在本例中,服务器在非标准端口3000上侦听来自客户端的连接


我的问题是,在我的代码调用sendCommand函数之后,我只在服务器上获得POST消息,直到HTTP头出现;我没有得到POST消息正文中的参数。如果刷新执行代码的客户机页面,参数将显示在服务器上。非常感谢您对我可能缺少的任何帮助。

除了在某些IE版本中无法工作外,其他一切似乎都是正确的,您是否已通过控制台记录了argsForCommand以确保它们包含有效数据?是的,我已检查了argsForCommand中的值,它们似乎是正确的。事实上,当我在浏览器上进行刷新/重新加载时,服务器会接收到它们。我怀疑当刷新/重新加载完成时,可能会发生一些tcp刷新,并将其发送出去。另外,我在测试这个时使用了谷歌浏览器。我没有用IE检查。网络检查器中的请求是什么样子的?我没有使用任何网络检查器。在服务器上,我可以看到下面收到的消息,当服务器收到任何消息时,我会在服务器上打印出来。我的意思是,在chrome上,你可以打开开发工具右键单击-检查元素,这是最简单的方法,查看网络请求。