为什么这个Ajax请求似乎没有将JS变量传递给PHP?

时间:2016-09-13 22:36:09

标签: javascript php ajax

我目前正在努力弄清楚如何使用Ajax将变量从JS传递到PHP。我尝试使用以下Ajax代码

xhr = new XMLHttpRequest();

function myFunction() {
    xhr.open("GET", "welcome.php");
    xhr.send("your_name=john&your_age=40");

    xhr.onreadystatechange = function() {
        if(xhr.readyState === 4) {
            document.getElementById("output").innerHTML = xhr.responseText;
        }

    }
}

结合名为welcome.php的PHP脚本,如下所示:

$user = $_GET['your_name'];
var_dump($user);

然而,出于某种原因,这会输出'NULL'而我无法解决原因。

我也试过将echo $user;包含在welcome.php文件中,但这不会返回任何内容。

任何人都知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

您正在使用方法GET,如.send documentation

中所述
  

如果请求方法是GET或HEAD,则忽略该参数并将请求体设置为null。

你想做的是

xhr.open("GET", "welcome.php?your_name=john&your_age=40");