第一种方法
要将数据从 JavaScript 发送到 PHP(或任何其他脚本)应该就像您发现的那样:
xhttp.setRequestHeader('Content-type', 'application/json');
xhttp.send(JSON.stringify(params));
where params
是一些 JavaScript 变量。application/json
是 JSON 数据的数据类型。
在 PHP 方面,你也是正确的:使用JSON_decode()
获取与您发送的 JavaScript 数据等效的 PHP 数据。
第二种方法(仅适用于 GET 请求)
GET 数据被编码在 URL 中,因此另一种方法是将数据直接编码到 PHP 脚本的 URL 中。 (不要对敏感数据执行此操作。)
JavaScript:
xhttp.open("GET", "phpfile.php?x=2&y=3&z=4");
PHP:
$x = $_GET["x"];
$y = $_GET["y"];
$z = $_GET["z"];
因为您似乎不清楚如何使用第一种方法发送多个变量:
如果要发送多个变量,请将其放入对象或数组中(因为JSON.stringify()
仅采用一个(数据)参数,而不是逗号分隔的参数列表)。
// for example, to send the variables x, y, z
var xValue = 2;
var yValue = 3;
var zValue = 4;
xhttp.setRequestHeader('Content-type', 'application/json');
xhttp.send(JSON.stringify({ x: xValue, y: yValue, z: zValue }));
PHP:
$data = json_decode($_GET);
echo $data->x; // 2
echo $data->y; // 3
echo $data->z; // 4;
(免责声明:代码未经测试;我不确定数据是否被接收到$_GET
多变的。使用json_decode()
PHP 从中接收 JSON 数据的变量。)