Javascript 无法使用post方法在AJAX调用中发送数据
这是我的代码,它非常简单,工作非常完美:Javascript 无法使用post方法在AJAX调用中发送数据,javascript,php,Javascript,Php,这是我的代码,它非常简单,工作非常完美: var r = new XMLHttpRequest(); var name='KillerSeba'; r.open("GET","../Serve/servepage.php?name="+name,true); r.onreadystatechange = function () { if (r.readyState != 4 || r.status != 200) return; alert("Success: " + r.respons
var r = new XMLHttpRequest();
var name='KillerSeba';
r.open("GET","../Serve/servepage.php?name="+name,true);
r.onreadystatechange = function () {
if (r.readyState != 4 || r.status != 200) return;
alert("Success: " + r.responseText);
};
r.send();
此代码仅在页面加载时发送警报“Success:KillerSeba”。我回答请求的php文件看起来有点:
<?php
$s=$_REQUEST['name'];
echo $s;
?>
但现在脚本并没有向php文件发送任何数据,因为我只收到“Success:”警报。杀手会消散到某个地方。我尝试在send()函数中使用“name”和“name”代替name,我尝试用$\u POST替换$\u请求,但仍然没有帮助。所以我的问题是:如何使用POST方法在AJAX请求中发送数据?这个send()函数是如何工作的?
另外,我更喜欢只使用Vanilla JS框架。
您发送的是
名称
,但没有任何变量名(它被认为是没有任何值的变量名)
更改您的r.send(名称)
tor.send('name='+name)代码>
有关更多信息,请查看
编辑:感谢您的提示,当然您需要在发送请求之前设置正确的标题:
r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
您正在发送name
,但没有任何变量名(它被视为没有任何值的变量名)
更改您的r.send(名称)
tor.send('name='+name)代码>
有关更多信息,请查看
编辑:感谢您的提示,当然您需要在发送请求之前设置正确的标题:
r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
当您以字符串形式发送名称时,没有任何参数名称,这就是为什么它不适用于POST
方法,但当您使用GET
发送时,您将该名称与url连接在一起。现在,您必须以与使用GET方法发送相同的方式传递参数。像这样尝试一下,我只是将名称包装到一个名为params
的变量中,该变量包含params='name='+name
所以您必须使用r.send(参数)
发送它。请参见此处的示例以了解和
当您以字符串形式发送名称时,没有任何参数名称,这就是为什么它不适用于POST
方法,但当您使用GET
发送时,您将该名称与url连接在一起。现在,您必须以与使用GET方法发送相同的方式传递参数。像这样尝试一下,我只是将名称包装到一个名为params
的变量中,该变量包含params='name='+name
所以您必须使用r.send(参数)
发送它。请参见此处的示例以了解和
非常感谢,现在它工作正常了,但只是因为我添加了r.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”);编码。标题也必须发送;没有它它就无法工作是的,你必须添加内容类型
标题,我只是错过了在我的回答中添加它。非常感谢,现在它工作正常,但只是因为我添加了r.setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);编码。标题也必须发送;没有它是不行的。是的,你必须添加内容类型
标题,我只是错过了在我的回答中添加它。谢谢文档,我已经阅读了使用POST方法时需要发送的标题。和变量值,感谢文档,我已经阅读了使用POST方法时需要发送的标题。和变量值,ofc
var r = new XMLHttpRequest();
var name='KillerSeba';
r.open("POST","../Serve/servepage.php",true);
//Send the proper header information along with the request
r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
r.onreadystatechange = function () {
if (r.readyState != 4 || r.status != 200) return;
alert("Success: " + r.responseText);
};
params = 'name='+name;
r.send(params);