-1

问题:最近在开发微信小程序,后端是用PHP写的,但是我页面提交过去的Json数据,php页面接收不到,很奇怪!
下面前端代码截图:

后台php代码:

<?php
    $val = $_POST['val'];
    var_dump($val);
?>

为什么这种格式的数据 php收不到,我应该用什么方法解决,求各路大神赐教!

7个回答

3

代码如下

$inputContent=file_get_contents("php://input");

php:// — 访问各个输入/输出流(I/O streams)

http://php.net/manual/zh/wrap...

1

通过表单提交的数据是form-data形式的,形如a=b&c=d,可以通过$_POST变量读取。
而你的问题中,浏览器传来的是raw形式的数据,整个就是个编码的JSON,所以$_POST是取不到值的,只能通过php://input拿到原始输入:

$raw = file_get_contents('php://input');
$data = json_decode($raw, true);

拿到原始输入还是个编码的JSON,所以需要json_decode解码,解码完就可以用了

0

你是按表单的方式接收,但是提交的不是表单形式的数据

0

file_get_contents("php://input"); 因为客户端没有把数据注入到全局变量内. 微信支付等腾讯系的回调经常会遇到的问题. 这个写法比较节省内存.

0

前端提交数据是以'Request Payload'类型,后端用$_POST接收肯定是空的。如果你想后端用$_POST接收,你前端要以'Form Data'提交。

-1

转换为字符串再提交 序列化一下

-1

value加引号试试

撰写答案