Can';t使用AJAX将JSON变量发布到PHP

Can';t使用AJAX将JSON变量发布到PHP,php,ajax,Php,Ajax,在第一个文档中,我向localstorage添加了一个充满数字的JSON字符串,如下所示: $.ajax({ url: "oyvind_liste.php", data: {aktuelle_verdier: aktuelle_verdier}, dataType: "json", success: function(result){ var dataToStore = JSON.stringify(result); localStorage.setItem('

在第一个文档中,我向localstorage添加了一个充满数字的JSON字符串,如下所示:

$.ajax({
   url: "oyvind_liste.php", 
   data: {aktuelle_verdier: aktuelle_verdier}, 
   dataType: "json",
success: function(result){
   var dataToStore = JSON.stringify(result);
   localStorage.setItem('key', dataToStore);
   }});
<?php
$user_id = isset($_POST['localData'])?$_POST['localData']:"";
$values = json_decode($user_id);
var_dump($values);
?>
然后在另一个文档中,我试图发布从本地存储检索到的JSON字符串,如下所示:

<script>
var data = JSON.parse(localStorage.getItem('key'));
var localData = data.join(", ");

$.ajax({
type: 'post',
       data: {localData: localData}, 
       url: '',
       dataType: "json",
       success: function(result){
       console.log(result)
       }});
</script>

var data=JSON.parse(localStorage.getItem('key'));
var localData=data.join(“,”);
$.ajax({
键入:“post”,
数据:{localData:localData},
url:“”,
数据类型:“json”,
成功:功能(结果){
console.log(结果)
}});
与帖子位于同一页面上的PHP尝试获取如下数据:

$.ajax({
   url: "oyvind_liste.php", 
   data: {aktuelle_verdier: aktuelle_verdier}, 
   dataType: "json",
success: function(result){
   var dataToStore = JSON.stringify(result);
   localStorage.setItem('key', dataToStore);
   }});
<?php
$user_id = isset($_POST['localData'])?$_POST['localData']:"";
$values = json_decode($user_id);
var_dump($values);
?>


当我运行var_dump时,我会得到
Array()
,所以本质上它不会发布任何内容。有人知道出了什么问题吗?

在向
$.ajax
发送对象参数中的数组时,不需要使用
JSON
。只要把数组放在那里,jQuery就会对它进行URL编码

var data = JSON.parse(localStorage.getItem('key'));

$.ajax({
    type: "post",
    data: { localData: data },
    ...
});
然后在PHP中,您可以执行以下操作:

$values = isset($_POST['localData']) ? $_POST['localData'] : array();
var_dump($values);
您也可以通过以下方式发送JSON:

var json_string = localStorage.getItem('key');
$.ajax({
    type: "post",
    data: { localData: json_string},
    ...
});
然后在PHP中执行以下操作:

$values = json_decode(isset($_POST['localData']) ? $_POST['localData'] : '[]');
var_dump($values);

在将javascript代码发送到PHP之前,
data
值是否已在javascript代码中设置?
localData
不是JSON,它只是一个逗号分隔的字符串。@Maximus2012编辑了我的文章,请看顶部@Barmar那么你是说我需要在用ajax发送之前对其进行编码?我会这么说。因为PHP代码需要JSON中的值。您可能还想尝试使用
var\u dump($\u POST)
查看POST值,甚至使用FireBug插件跟踪请求。这似乎不会产生任何结果,我只得到一个空数组。感谢您的扩展,首先
var\u dump($values)
读取
array(0){
。和
console.log(data)
,因为我使用的是
var json\u string=localStorage.getItem('key')
so
console.log(json_string)
显示这样的数字
[“4”、“5”、“6”]
当页面第一次加载时,或者当它调用AJAX时,您会得到这样的数字吗?如果您为AJAX服务器使用的脚本与显示页面的脚本不同,那么可能就不会那么混乱了。