我正在从 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/