PHP/Javascript变量传递--意外结果

PHP/Javascript变量传递--意外结果,javascript,php,Javascript,Php,我正在从javascript(Chrome版本67.0.3396.99)调用一个php页面(使用PHP7.0)。在网上阅读时,我使用了一个代码示例。将一个json字符串通过PUT传递到php应该传递一个$\u POST变量,该变量是一个映射 {“a”:“a”,“b”:“b”,“c”:“c”}成为 $_POST = [ "a" => "A", "b" => "B", "c"=>"C" ] 然而,在我下面的代码中,javascript被传递了 $_POST = [ "{"a":

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

{“a”:“a”,“b”:“b”,“c”:“c”}
成为

$_POST = [  "a" => "A", "b" => "B", "c"=>"C" ]
然而,在我下面的代码中,javascript被传递了

$_POST = [ "{"a":"A","b":"B","c":"C"}" : "" ]
这很奇怪。如果不是一张地图,我会期待一个字符串

我做错什么了吗?想到代码对于生产来说是不可靠的,这有点伤脑筋。或者也许有更好的方法

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\uu
是字符串,请删除
'


您的
json\uu
是字符串,请删除
'

两种解决方案:

1

根据其他用户的建议:

从json字符串中删除
'

2

如果要使用字符串,还必须使用函数

范例

  var json_= '{"a":"A","b":"B","c":"C"}';
    json_= JSON.parse(json_);
两种解决方案:

1

根据其他用户的建议:

从json字符串中删除
'

2

如果要使用字符串,还必须使用函数

范例

  var json_= '{"a":"A","b":"B","c":"C"}';
    json_= JSON.parse(json_);