gpt4 book ai didi

javascript - php - json_decode 未定义索引,但值在那里

转载 作者:行者123 更新时间:2023-11-29 21:16:43 25 4
gpt4 key购买 nike

我很疑惑。

我将一个键值对对象从 jquery 传递到 php。并再次成功提醒它退出,但如果我转到 php 页面。它说数据为空或未定义索引。

下面是我的 jquery

$('#test').click(function(){
var obj= {
'key': 'value',
};
$.ajax({
url: "../folder/file.php",
type: "POST",
data: {
'obj' : obj
},
dataType: "JSON",
success:function(data){
alert(data);
}

});
});

下面是我的php

$data = $_POST['obj']; // this is line 1
echo json_encode($data); // this is line 2

使用上面的代码,当我点击测试按钮时,我会得到警报 value。但是如果我在点击测试按钮后转到 php 页面。该页面显示 Notice: Undefined index: obj on line 1, and null on line 2.

为什么?

我收到了我输入的值的警报。所以这一定意味着数据通过并返回。但是 php 页面说它是空的。

最佳答案

$_POST['myobj']; 是一个数组,不是 json 字符串。

虽然当您在 ajax 方法中将它用作 data 的值时它是一个 JS 对象,但除非您明确设置 contentType,否则它会被转换为 post 数据。默认情况下,内容类型是 application/x-www-form-urlencoded;字符集=UTF-8

因为您使用的是默认内容类型:

$_POST['myobj']['key1'] 应该是例如 key1 的值。

在对象上使用 var_dump 可以更好地查看它,并理解它的结构。

var_dump($_POST['myobj']);

关于javascript - php - json_decode 未定义索引,但值在那里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39134380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com