在PHP中检索AJAX数据

时间:2014-01-09 16:13:11

标签: javascript php ajax

我需要使用xhr.send(VALUE)在AJAX中发送数据。如何在PHP文件中获取此数据?

JS:

window.onload = function() {
    var value = 'hello';
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if(xhr.readyState == 4 && xhr.status == 200) {
            alert(xhr.responseText);
        } else {
            alert("no");
        }
    }
    xhr.open('POST', 'json.php', true);
    xhr.send(value);

}

3 个答案:

答案 0 :(得分:1)

如果您想在PHP页面上看到$_POST变量,您可以使用此代码全部显示它们,以便您可以直观地看到它们的键和值

echo "<pre>";
print_r($_POST);
echo "</pre>";

从那里你将知道如何在任何文件中使用数据。您可以使用$_GET

执行相同的操作

答案 1 :(得分:1)

您只是将一个字符串发送到PHP文件。您不是将其作为查询字符串或内容类型发送,因此PHP不会填充$POST数组。

您可以尝试阅读原始帖子数据:

$post = file_get_contents('php://input');
echo $post; // hello

或者,如果您希望PHP填充$_POST,您需要在JavaScript中执行一些额外的步骤。

window.onload = function() {
    var value = 'hello';
    var xhr = new XMLHttpRequest();

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

    xhr.open('POST', 'json.php', true);

    // Tell the server you are sending form data
    xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    // Send it as a query string
    xhr.send('value='+value);
}

然后在PHP中,您可以访问$_POST['value']

echo $_POST['value'];  // hello

答案 2 :(得分:0)

试试这个,用

替换你的xhr.send

JS

 xhr.send('value='+value);

PHP

echo($_POST['value']);