【发布时间】:2018-12-03 14:55:31
【问题描述】:
我有一个从 HTML 获取参数的 Javascript 函数。
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 向我抛出了一个错误:
注意:未定义索引:第 22 行 .\test.php 中的数据
这意味着 if(isset($_POST['key']) 返回 false,我不知道为什么。我可以使用 Ajax 找到大量信息,但没有太多指导我使用标准 Javascript。
编辑:
根据 cmets 将 $_POST['data'] 更改为 $_POST['key']。
现在接收变量错误(未定义),而不是索引错误。
注意:未定义变量:第 22 行 .\test.php 中的数字
【问题讨论】:
-
PHP 不会收到“数据”的参数,因为您在 javascript 方面所指的“数据”映射到服务器上的 $_POST 超全局变量,所以 $数据 = $_POST。所以你应该可以把它读成
$_POST['key']; -
@Jackhardcastle 正确。小错误,但修复后,我仍然有同样的问题。
-
请不要更改代码,因为它会使 cmets/answers 看起来很愚蠢。而是添加和编辑并进行更改
-
其实错误已经改变了。现在它是未定义的变量。
-
并且总是向我们展示完整的错误信息
标签: javascript php