首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery $.post和php $_POST

jquery $.post和php $_POST
EN

Stack Overflow用户
提问于 2014-07-02 06:58:48
回答 4查看 1.3K关注 0票数 1

我试图使用jquery将数据传递给php。我正在用javascript获取数据。

JQuery:

代码语言:javascript
复制
$.post("export.php", JSON.stringify(result)); //result is an array of object

当我在chrome上使用调试器时,我可以在表单数据中看到这样的内容:{"id":"foo","x":0,"y":1,"z":8,"t":3}

但是,当我试图用php检索它时,它不起作用:

代码语言:javascript
复制
echo 'Before decode ';
$array=$_POST['data'];
echo 'After decode ';
echo $array;

它只是在回响:在解码之前

我遗漏了什么?(我知道我应该对数据进行解码,以获得php中的数组,但我将其简化为查看问题的来源)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-02 07:10:52

通常,您甚至不必将数据转换为JSON:

代码语言:javascript
复制
$.post("export.php", { data: result });

或者,您必须将JSON编码的主体从输入流中提取出来,即:

代码语言:javascript
复制
$array = json_decode(file_get_contents('php://input'), true);

如果请求主体的内容类型没有广告为application/x-www-form-urlencoded,通常会发生这种情况。

票数 1
EN

Stack Overflow用户

发布于 2014-07-02 07:03:33

如果您想发送编码的JSON字符串并通过$_POST['data']访问它,则需要将结果包装在一个带有data键的对象中

代码语言:javascript
复制
$.post("export.php", {data: JSON.stringify(result)});

然后,在您的服务器中,您可以这样解码它:

代码语言:javascript
复制
echo 'Before decode ';
$array = json_decode($_POST['data']);
echo 'After decode ';
print_r($array);
票数 2
EN

Stack Overflow用户

发布于 2014-07-02 07:03:48

尝试在data变量中发布json,然后在export.php上获得$_POST['data']

代码语言:javascript
复制
$.post("export.php", {data : result});

或者您可以使用file_get_contents()获得不带变量的已发布数据。

代码语言:javascript
复制
$data = file_get_contents('php://input');

然后解码它json_decode()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24524734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档