PHP Post获取不到非表单数据的问题解决办法

问题描述

在使用vue-axios向后端post数据时,PHP端获取不到post的数据。

问题解决

修改php.ini配置

找到php.ini配置文件,查找enable_post_data_reading变量,修改为打开状态,注释掉句前分好

; Whether PHP will read the POST data.
; This option is enabled by default.
; Most likely, you won't want to disable this option globally. It causes $_POST
; and $_FILES to always be empty; the only way you will be able to read the
; POST data will be through the php://input stream wrapper. This can be useful
; to proxy requests or to process the POST data in a memory efficient fashion.
; http://php.net/enable-post-data-reading
enable_post_data_reading = On  //大约656行,修改此条

修改配置后,发现还是不行,继续查阅资料。

获取非表单数据

搜集资料之后,发现vue-axios向后端post的是非表单数据(Ajax不同),在获取非表单数据时需要用php://input

$raw = file_get_contents('php://input');//获取非表单数据
echo $raw;//输出结果

PS:post时前端请求头要设置为

headers: {
  "Content-type": "application/json; charset=utf-8"
}

您可能感兴趣的文章:

  • php获取POST数据的三种方法实例详解
  • PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
  • PHP利用超级全局变量$_POST来接收表单数据的实例
  • PHP之将POST数据转化为字符串的实现代码
  • PHP CURL post数据报错 failed creating formpost data
  • php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
  • 功能强大的PHP POST提交数据类
  • PHP模拟post提交数据方法汇总
  • 利用PHP fsockopen 模拟POST/GET传送数据的方法
  • php post大量数据时发现数据丢失问题解决方法
  • 浅谈PHP接收POST数据方式
  • php使用socket post数据到其它web服务器的方法
  • PHP中使用socket方式GET、POST数据实例
  • php程序内部post数据的方法
(0)

相关推荐

  • PHP利用超级全局变量$_POST来接收表单数据的实例

    利用$_POST超级全局变量接收表单的数据,然后利用echo输出到页面. 下面是代码: <!doctype html> <html> <head> <title>利用超级全局变量$_POST接收表单</title> <meta http-equiv="content-type" contnet="text/html" charset="utf-8"/> </head&g

  • php使用socket post数据到其它web服务器的方法

    本文实例讲述了php使用socket post数据到其它web服务器的方法.分享给大家供大家参考.具体实现方法如下: function post_request($url, $data, $referer='') { // Convert the data array into URL Parameters like a=b&foo=bar etc. $data = http_build_query($data); // parse the given URL $url = parse_url(

  • php获取POST数据的三种方法实例详解

    php获取POST数据的三种方法 方法一,$_POST $_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的数据. 方法二,使用file_get_contents("php://input") 对于未指定 Content-Type 的POST数据,则可以使用file_get_contents("php://input");来获取原始数据. 事实上,用PHP接收POST的任何数据均使用本方法.而不用考虑Content-Type,

  • 利用PHP fsockopen 模拟POST/GET传送数据的方法

    使用php可以模拟 post 和 get 传送数据到别的网页或站点 $arr=array( 'user'=>'test', 'password'=>'' ); sock_get($post_url,$arr); sock_post($post_url,$arr); //fsocket模拟get提交 function sock_get($url,$query=array()){ $query_str = http_build_query($query); $<span id="_

  • php使用CURL模拟GET与POST向微信接口提交及获取数据的方法

    本文实例讲述了php使用CURL模拟GET与POST向微信接口提交及获取数据的方法.分享给大家供大家参考,具体如下: php CURL函数可以模仿用户进行一些操作,如我们可以模仿用户提交数据也可以模仿用户进行网站访问了,下面我们来介绍利用CURL模拟进行微信接口的GET与POST例子,例子非常的简单就两个: Get提交获取数据 /** * @desc 获取access_token * @return String access_token */ function getAccessToken()

  • PHP模拟post提交数据方法汇总

    使用php模拟post传值虽然在日常生活中用到的不是很多,但是在某些场合还是经常用到的.下面我们小编给大家整理了三种php模拟post传值的方法,file_get_contents.curl和socket. 第一种:file_get_contents来模拟post <php function file_get_contents_post($url, $post){ $options = array( 'http'=> array( 'method'=>'POST', 'content'=

  • php post大量数据时发现数据丢失问题解决方法

    解决办法: 在php.ini中将max_input_vars调大改为5000就可以了 原因追查: from的enctype="multipart/form-data" php版本5.6.6 问题:部分POST数据接收不到 追源代码发现是php中max_input_vars配置造成的: 相关函数为rfc1867_post_handler,如果超过长度,则不会调用safe_php_register_variable来进行变量注册 相关堆栈如下 复制代码 代码如下: #0  rfc1867_

  • PHP CURL post数据报错 failed creating formpost data

    在做微信卡券使用curl上传logo图片时,发现一个报错: failed creating formpost data 代码中数组如下: $data = array('buffer' => '@test.jpg'); 结合微信给的文档,检查语法,貌似并没有发现什么错误... 经过上网查询和验证,最终发现,问题出现在 @ 这里,如果在 @ 前面加一个 \ 转义下就可以了,在php官方的bugs.php.net中也有提到(本文最后提供网址) 最终代码: $data = array('buffer'

  • php程序内部post数据的方法

    本文实例讲述了php程序内部post数据的方法.分享给大家供大家参考.具体实现方法如下: $postData = array(); $postData['data1'] = "testdata1"; $postData['data2'] = "testdata2"; $postData['data3'] = "testdata3"; $url='http://yourdomain/do.php'; $str=""; forea

  • PHP中使用socket方式GET、POST数据实例

    1. 使用 PHP 获得网页内容 GET方式 复制代码 代码如下: <?php function socketGet($url, &$ret) {  $urlArr = parse_url($url);  $host = $urlArr['host'];  $port = isset($urlArr['port'])?$urlArr['port']:80;  $path = isset($urlArr['path'])?$urlArr['path']:"/";  $fp

  • 浅谈PHP接收POST数据方式

    通常情况下用户使用浏览器网页表单向服务器post提交数据,我们使用PHP接收用户POST到服务器的数据,并进行适当的处理.但有些情况下,如用户使用客户端软件向服务端php程序发送post数据,而不能用$_POST来识别,那又该如何处理呢? $_POST方式接收数据 $_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量.如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type:

  • PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

    通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便大笑),curl_setopt 是PHP的一个扩展库      使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2)        //取消下面的注释 extension=php_curl.dll 在Linux下面,需要重新编译PHP了,编译时,你需要打开编译参数--在configure命令上加上"–with-curl" 参数. 1. 一个抓取网页的简单案例: [php] view pla

  • PHP之将POST数据转化为字符串的实现代码

    主要用途就是记录POST过来的参数: 以下函数主要原理还是应用递归方式,将多维数组转化为一维数组进行,最后进行数组转字符串处理既可拿到POST过来的数据字符串化: 核心代码: /** * 应用于LOG记录POST参数使用 * * @version 0.0.1 * @Author Chenjl <ciwdream@gmail.com> * * @return string */ function getPostLog(array $_data = array(),$n = ''){ $_gPOS

  • 功能强大的PHP POST提交数据类

    本文实例为大家分享了PHP功能强大的 POST提交数据类,供大家参考,具体内容如下 <?php class Request{ public static function post($url, $post_data = '', $timeout = 5){//curl $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_POST, 1); if($post_data != ''){

随机推荐