使用javascript和php发送和接收变量

时间:2017-07-19 09:57:05

标签: javascript php

我正在尝试使用javascript将变量发送到php并尝试接收并警告该变量。我不知道我做错了什么。

这是我的javascript代码:

function getMessageType(data)
{
    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');

    xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
          alert(xhr.responseText);
        }
    };
    xhr.send(data);
}

这是我的Php代码:

<?php       
$obj = $_POST['data'];
return $obj;
?>

这是我试过的:

getMessageType('some data'); //function call

function getMessageType(data)
{
    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');
    xhr.send(data);

    xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
          alert(xhr.responseText);
        }
    };
}

Php代码:

<?php       
$obj = $_POST['data'];
echo $obj;

我仍然得到空白警报。

2 个答案:

答案 0 :(得分:0)

你应该从php端echo这个变量。

<?php       
$obj = $_POST['data'];
echo $obj;

同样在这种情况下,您应该使用text/plain内容类型。

答案 1 :(得分:0)

而不是返回你的对象。

echo $obj;

此外,您在提醒您的数据后发送数据请求,因此您在发出任何警报之前都会发出警报。

做这样的事情。

  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
 xhr.send(data);

xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
      alert(xhr.responseText);
    }
};