繁体   English   中英

无法使用AJAX将JSON变量发布到PHP

[英]Can't post JSON variable with AJAX to PHP

在第一个文档中,我向本地存储添加了一个用数字填充的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);
   }});

然后在另一个文档中,我试图像这样发布从本地存储中检索到的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>

与帖子在同一页面上的PHP尝试获取如下数据:

<?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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM