[英]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.