我想知道如何使用ajax和vanilla javascript向php发送一些东西。我问你是因为我刚刚找到了jQuery解决方案。
我知道,如果我想收到一些东西,它应该是这样的:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
this.responseText; // This is my response
}
};
xhttp.open("GET", "phpfile.php", true);
xhttp.send();
有人可以解释或者把我送到解决方案,因为我找不到任何东西。
发布于 2018-08-18 08:49:19
First方法
将数据从JavaScript发送到PHP (或任何其他脚本)应该就像您发现的那样:
xhttp.setRequestHeader('Content-type', 'application/json');
xhttp.send(JSON.stringify(params));
其中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()
数据的变量上使用JSON。)
https://stackoverflow.com/questions/51904221
复制相似问题