我正在尝试使用javascript将变量发送到php并尝试接收并警告该变量。但$_POST['data']
无法获取我传递的数据,$obj
始终为空。
如果我只是echo "some text";
,它会发出警告。
这是我的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;
我做错了什么?
感谢任何帮助。感谢
答案 0 :(得分:1)
您要发布内容类型为application/x-www-form-urlencoded
的数据。
因此,您的数据必须为表单编码:
data = "key="+str;
如果POST信息有任何“表单数据”
,您可以在浏览器中查看答案 1 :(得分:0)
如果您需要传递具有内容类型 application / x-www-form-urlencoded 的JSON数据(对象),则需要将其转换为文本格式:< / p>
var params = "";
for (key in data) {
params += encodeURIComponent(key)+"="+encodeURIComponent(data[key])+"&";
}
然后发送
xhr.send(params);