无法通过ajax处理数组传递为post参数到php

时间:2013-06-12 11:48:03

标签: php arrays jquery

我试图通过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脚本..它工作正常!

我哪里出错了,处理阵列的最佳方法是什么?

2 个答案:

答案 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
});