使用vanilla javascript将数据发布到php并将其恢复

时间:2017-07-19 14:10:59

标签: javascript php

我正在尝试使用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;

我做错了什么?

感谢任何帮助。感谢

2 个答案:

答案 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);