javascript - 无法在 PHP 中捕获 POST 变量

标签 javascript php

下面是来自 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/

相关文章:

javascript - jQueryeach 和 find 调用不适用于 html

php - 如何使用带有 PHP 代码的 REST API 取消 Paypal 计费协议(protocol)

php - 如何在启动 POLL 后通过添加项目来提高 POLL 系统的准确性?

PHP代码向用户发送生日祝福

php - cURL 无法使用客户端证书(未找到 key 或密码短语错误?)

javascript - 如何通过从angular的ng-init传递的Id获取html元素

javascript - Mat-Select 返回未定义

javascript - 使用 Canvas 创建可指向的第一人称射击枪

javascript - 从JS中的样式表中获取无法识别的样式

php - 如何包含文件php