我试图通过ajax将数组传递给远程php脚本执行。
这是我试过的片段
$arr=["12","13"];
$.ajax({
url:"script.php",
data:{"arr":$arr}
success: function(data){console.log(data);},
error:function(data){console.log("error in xhr");},
complete:function(data){},cache: false,type: "POST",dataType: 'json'
})
<?php
$return['arr']=json_decode($_POST['arr']);
echo json_encode($return);
?>
我在firebug中发现了错误:json_decode()期望参数1为字符串,给定数组。
然而,当我单独处理相同的PHP脚本..它工作正常!
我哪里出错了,处理阵列的最佳方法是什么?
答案 0 :(得分:2)
试试这个,
data:{"arr":JSON.stringify($arr)}
让我知道这有用吗?。
答案 1 :(得分:0)
您需要使用JSON.stringify首先将对象序列化为JSON,然后指定内容类型,以便服务器理解它的JSON。
$.ajax({
url: url,
type: "POST",
data: JSON.stringify(data),
contentType: "application/json",
complete: callback
});