javascript - PHP/Javascript 变量传递——意想不到的结果

标签 javascript php

我正在从 javascript(在 Chrome 版本 67.0.3396.99 上)调用 php 页面(使用 PHP7.0)。在网上阅读时,我使用了一个代码示例。通过 PUT 将 json 字符串传递给 php 应该会传递一个 $_POST 变量,该变量是一个映射。

{"a":"A","b":"B","c":"C"} 变为

$_POST = [  "a" => "A", "b" => "B", "c"=>"C" ]

但是,在我下面的代码中,javascript 传递了

$_POST = [ "{"a":"A","b":"B","c":"C"}" : "" ]

这很奇怪。如果不是 map ,我会期望一个字符串

我做错了什么吗?认为代码对于生产来说不可靠有点让人伤脑筋。或者也许有更好的方法?

JavaScript:

function testeroo(){

    json_ = '{"a":"A","b":"B","c":"C"}'

    jQuery.ajax({
        type: "POST",
        url: './test.php',
        data: json_,
        success: function (obj) {
            alert(obj);  
        },
        error: function () {
            alert("ERROR testeroo");
        }
    });

}

test.php 证实了这一点:

foreach ($_POST as $key => $value){
    $zeroKey = $key;  
    //only one key, so $zeroKey is only key
}
$j = json_decode($zeroKey);
            //$j is the expected map

最佳答案

您的 json_ 是字符串,删除 ''

 json_ = {"a":"A","b":"B","c":"C"}

关于javascript - PHP/Javascript 变量传递——意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52004902/

相关文章:

javascript - 使用 javascript 将 HTML 转换为 Word

javascript - collection.fetch() 的选项

javascript - 使用 Lo-Dash 继承

javascript - document.ready 内部 body 标签

javascript - 如何在mithril js模型和 Controller 中获取m.request获取数据 'length'?

javascript - 在 joomla 3 中使用 window.location

php - Zend Framework 2 RESTful Controller 操作

php - 在帖子标题中使用 wordpress 简码

php - $_GET 在我的网站上不起作用

php - Nodejs http ://localhost:8080 not working