gpt4 book ai didi

javascript - 使用 XMLHttpRequest (vanillaJS) 将数据发送到 PHP 并使用 $_POST 在 php 中读取数据?不明确的

转载 作者:行者123 更新时间:2023-11-28 10:39:51 26 4
gpt4 key购买 nike

我有一个 Javascript 函数,它从 HTML 中获取参数。

    function find(customer) {
data = {"key":customer};
console.log(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) {
console.log(xhr.responseText);
}
};
}

日志产生正确的信息,即

{key:"103"}

然后在 PHP 中,我尝试像这样访问这些数据:

if (isset($_POST['data'])) {
$number = $_POST['data'];
}

echo $number;

但是,PHP 向我抛出错误:

Notice: Undefined index: data in .\test.php on line 22

这意味着 if(isset($_POST['key']) 返回 false,我不确定为什么。我可以找到大量使用 Ajax 的信息,但没有太多指导我使用标准 Javascript。

编辑:

根据评论将 $_POST['data'] 更改为 $_POST['key']

现在收到变量错误(未定义),而不是索引错误。

Notice: Undefined variable: number in .\test.php on line 22

最佳答案

这是您要发送的内容:

data = {"key":customer};
xhr.send(data);

...但是当该对象转换为字符串时,您会得到:[object Object] 并且您的实际数据会丢失。

你说:

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

这声称您正在将 application/x-www-form-urlencoded 数据发送到服务器。

您需要转换数据,使其与您声明的内容类型相匹配。

This question addresses how to do that

<小时/>

此外,如果一个地方您将 key 称为 data,而另一个地方则将其称为 key。您必须始终使用相同的名称。

关于javascript - 使用 XMLHttpRequest (vanillaJS) 将数据发送到 PHP 并使用 $_POST 在 php 中读取数据?不明确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53596280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com