使用vanilla javascript将数据发布到php并将其取回
我尝试使用javascript将变量发送到php,并尝试接收并警告该变量。但是,使用vanilla javascript将数据发布到php并将其取回,javascript,php,Javascript,Php,我尝试使用javascript将变量发送到php,并尝试接收并警告该变量。但是,$\u POST['data']没有获得我传递的数据,$obj始终为空 如果我只是回显“一些文本”它会提醒您 以下是我的javascript代码: getMessageType('some data'); //function call function getMessageType(str) { data = {'key': str}; var xhr = new XMLHttpRequest()
$\u POST['data']
没有获得我传递的数据,$obj
始终为空
如果我只是回显“一些文本”代码>它会提醒您
以下是我的javascript代码:
getMessageType('some data'); //function call
function getMessageType(str)
{
data = {'key': str};
var xhr = new XMLHttpRequest();
var url = "test.php";
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
console.log(data); //Object {key: "some data"}
xhr.send(data);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
}
以下是我的PHP代码:
<?php
$obj = $_POST['key'];
echo $obj;
您发布的数据的内容类型为application/x-www-form-urlencoded
因此,您的数据必须进行格式编码:
data = "key="+str;
如果帖子信息包含任何“表单数据”,您可以在浏览器中检查此项。如果您需要传递内容类型为的JSON数据(对象),则需要将其转换为文本格式:
var params = "";
for (key in data) {
params += encodeURIComponent(key)+"="+encodeURIComponent(data[key])+"&";
}
然后把它寄出去
xhr.send(params);
它是一个字符串some data
,我在调用getMessageType
函数时传递它。您可以在代码顶部看到。您没有提供任何类型的名为data
的键,因此如果您从未设置该键,则无法通过该键检索值。可能字符串在POST正文中而不是键/值对中?即使设置了键,我仍然会收到空白警报。请改用console.log()
。这是您的问题。添加console.log(数据)代码>发送之前,确保已填充。