接收通过 POST 从 Javascript 发送到 PHP 的对象

Posted

技术标签:

【中文标题】接收通过 POST 从 Javascript 发送到 PHP 的对象【英文标题】:Receive object sent through POST from Javascript to PHP 【发布时间】:2020-04-29 17:52:15 【问题描述】:

javascript(使用 JQuery)中,我通过以下方式发送一个对象:

var myobj = ;
myobj['test'] = 1;
myobj['child'] = ;
myobj['child']['test2'] = 2;
var myvar = 123;
$.ajax(
  type: "POST",
  url: url,
  data: myobj,
  success: success,
  dataType: dataType
);

现在在 php 中,我通过 $_POST 变量接收对象。我想将此对象作为多维数组访问。我将如何引用该对象/变量及其内容?

如果我想连同 myobject 一起发送 (POST) 另一个变量 (myvar) 怎么办?如何发送两者,以及如何在 PHP 中访问它们?

【问题讨论】:

【参考方案1】:

您可以在发送到 PHP 处理程序之前对对象进行 jsonify。

你的javascript可以是这样的:

var myobj = ;
myobj['test'] = 1;
myobj['child'] = ;
myobj['child']['test2'] = 2;
var myvar = 123;
$.ajax(
  type: "POST",
  url: url,
  data: myobj: JSON.stringify(myobj), myvar: myvar,
  success: success,
  dataType: "json"
);

您可以像这样在 PHP 中将 data 作为多维数组访问:

$data = json_decode($_POST, true);
// $data['myobj'] contains the object
// $data['myvar'] contains the var 

【讨论】:

$data[myobj] 现在是 PHP 中的关联数组了吗?

以上是关于接收通过 POST 从 Javascript 发送到 PHP 的对象的主要内容,如果未能解决你的问题,请参考以下文章

通过 POST (ajax) 发送 JSON 数据并从 Controller (MVC) 接收 json 响应

无法接收 Vue 通过 axios 发送到 PHP 的 Post 数据

在 javascript 中的 HTTP POST 请求中发送 cookie

PHP 从 Ajax 调用接收空的 $_POST 变量

将带有 fetch 的 POST 发送到烧瓶时的端口问题

Python:使用cherrypy通过POST发送和接收大文件