下面是来自 javascript 的 ajax 调用
let dataX = {"VERSION": "iVersion_100", "ITOKEN": "iToken", "METHOD":"GSB"};
$.ajax({
type: "POST",
url: "target.php",
data: dataX,
dataType: "json"
})
.done(function(data) {
console.log(data);
});
现在,这是简单的 target.php
<?php ob_start();
$iVersion = $_REQUEST['VERSION'];
$iToken = $_REQUEST['ITOKEN'];
$iMethod = $_REQUEST['METHOD'];
echo $iVersion;
?>
我期待在控制台日志中看到“iVersion_100”。相反,它返回 NULL。我的脑袋几乎撞破了墙。迫切请求您的帮助。提前致谢。
最佳答案
您正在设置 dataType: "json"
但是 PHP 响应 iVersion_100
这不是有效的 JSON
因为你没有.error
处理程序,jQuery 似乎“默默地忽略”了这个错误条件,最终结果是 .done
从未调用过
将您的代码更改为
let dataX = {"VERSION": "iVersion_100", "ITOKEN": "iToken", "METHOD":"GSB"};
$.ajax({
type: "POST",
url: "target.php",
data: dataX,
dataType: "json"
})
.error(function() {
console.log(arguments);
})
.done(function(data) {
console.log('hello');
console.log(data);
});
您会看到是一个错误,"JSON.parse: unexpected character at line 1 column 1 of the JSON data"
关于javascript - 无法在 PHP 中捕获 POST 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434249/