1

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

我在哪里出错了,处理数组的最佳方法是什么?

4

2 回答 2

2

尝试这个,

data:{"arr":JSON.stringify($arr)}

让我知道这有帮助吗?

于 2013-06-12T11:55:20.757 回答
0

您需要使用 JSON.stringify 首先将您的对象序列化为 JSON,然后指定内容类型,以便您的服务器理解它是 JSON。

$.ajax({
 url: url,
 type: "POST",
 data: JSON.stringify(data),
 contentType: "application/json",
 complete: callback
});
于 2013-06-12T11:53:25.640 回答