PHP如何输出前端POST过来的值?

我在前端将val的值POST到search.php,为什么echo无法输出?
图片描述

search.php
图片描述

search.php的访问结果是这样的:
图片描述

浏览器:

图片描述

阅读 7.6k
10 个回答

你传的不是键值对,你直接var_dump看看就知道了.


这个是你没完善答案之前的回答,你完善答案后,我告诉你为什么;正常的传输方式是form-data传输方式,但是你这个传输方式是request payload方式;所以你要获取提交的值你要这样获取,从PHP输入流里获取:

$requestPayloadData = file_get_contents("php://input");
$requestData = json_decode($requestPayloadData,true);
echo $requestData['val'];
var_dump($requestData);

这样就可以了。

先直接 print_r($_POST) 看看吧

data:{

    val:'val'
};

clipboard.png

  1. 楼主把浏览器的响应头贴一下,上图画框的是前端发送给后端的数据
  2. 在后端PHP里这样写
if(empty($_POST['val'])) {
    echo 202;  //没值的时候输出一个自定义的值 用来测试
}else {
    echo $_POST['val'];
}
exit;

因为没有传一个name=val的值过来

要么在js里console.log一下这个val是什么样

要么在PHP里var_dump()一下$_POST

新手上路,请多包涵

可能是url的路径不对,或者data没有生成。导致没有post成功。可以用var_dump()函数打印下$_POST变量。

首先报错是说一个未定义的val的key,那么原因就很明显了,就是你的传值并没有这个key值,所以看你ajax里写的data是有问题的,没有给val定义key,正确写法data:{'val':val} ,你改成这样,再试试

直接访问search.php??
这样肯定不行的

第三张图点击console看看输出了没

$_POST['var']
对应的输入流应该是 var=xxxx 而不是JSON格式的{'var':'var'}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题