iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >thinkphp5 post得不到值如何解决
  • 155
分享到

thinkphp5 post得不到值如何解决

2023-07-04 17:07:50 155人浏览 泡泡鱼
摘要

这篇文章主要介绍了thinkPHP5 post得不到值如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp5 post得不到值如何解决文章都会有所收获,下面我们一起来看看吧。thinkphp5

这篇文章主要介绍了thinkPHP5 post得不到值如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp5 post得不到值如何解决文章都会有所收获,下面我们一起来看看吧。

thinkphp5 post得不到值是因为TP5是通过strpos函数在Header的content-type值中查找app/JSON字符串的,其解决办法就是设置Header的content-type值为app/json即可。

解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数

这段时间在学习 api 开发,从网上搞了一个课程在跟着做,就在昨天我又一次碰到了讲师一路畅通我半天调试的情况,遇到的问题是我用 Postman 测试 API 某 Post 接口的时候无论怎么发送请求总是提示我参数验证失败,在我调试的过程中某次采用通过 Body 表传递参数的方法,API 神奇地通了,于是我判断是之前 Json 传递出了问题,就各种在网上搜,然而并没有解决方法[不过 Get 了两个知识点放在文章结尾处]。

关于 TP5 的问题度娘不行就只能查源代码了,于是乎我就跟着错误一点一点的打断点终于被我发现了问题所在~

原来 TP5 是通过 strpos 函数在 Header 的 content-type 值中查找 app/json 字符串,也就是说你必须设置 Header 的 content-type 值为 app/json 才行,否则 TP5 不会认为你传入的是 Json 参数并给 Request::post 设值为空。

以上就解决了 TP5 无法接收 客户端 Post 传递的 Json 参数的问题。

两个知识点:

  • content-type 为 "application/json" 的数据 php 是不能直接识别的,所以导致 $_POST 数组为空。解决办法:我们只要用 $GLOBALS['Http_RAW_POST_DATA'] 把原始数据取出来,然后再 json_decode 就行了[使用此方法,需要设置 php.ini 中的always_populate_raw_post_data 值为 On][$HTTP_RAW_POST_DATA ,包含了 POST 的原始数据。但这不是一个超全局变量,要在函数中使用它,必须声明为 global ,或使用 $GLOBALS['HTTP_RAW_POST_DATA'] 代替。];

  • 可以通过 file_get_contents('php://input') 代替上面的方法直接获取到传入的 Json 参数[我在阅读 TP5 源码的时候发现他们也是用这个方法来获取的初始值]。

thinkphp是什么

thinkphp属于一种免费的开发框架,能够用于开发前端网页,最早thinkphp是为了简化开发而产生的,thinkphp同时也是遵循Apache2协议,最初是从Struts演变过来,也把国外一些好的框架模式进行利用,使用面向对象的开发结构,兼容了很多标签库等模式,它能够更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何php应用开发都可以从thinkphp的简单、兼容和快速的特性中受益。

关于“thinkphp5 post得不到值如何解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“thinkphp5 post得不到值如何解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网PHP编程频道。

--结束END--

本文标题: thinkphp5 post得不到值如何解决

本文链接: https://www.lsjlt.com/news/346678.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • thinkphp5 post得不到值如何解决
    这篇文章主要介绍了thinkphp5 post得不到值如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp5 post得不到值如何解决文章都会有所收获,下面我们一起来看看吧。thinkphp5...
    99+
    2023-07-04
  • thinkphp5找不到类如何解决
    这篇文章主要介绍“thinkphp5找不到类如何解决”,在日常操作中,相信很多人在thinkphp5找不到类如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp5找不到类如何解决”的疑惑有所...
    99+
    2023-07-06
  • thinkphp获取不到post数据如何解决
    这篇文章主要介绍“thinkphp获取不到post数据如何解决”,在日常操作中,相信很多人在thinkphp获取不到post数据如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp获取不到p...
    99+
    2023-07-05
  • session获取不到值如何解决
    如果在session中无法获取到值,可能是由于以下几个原因:1. 会话过期:会话可能已经过期,导致无法获取到值。可以尝试重新登录或延...
    99+
    2023-09-14
    session
  • 浅析php post提交取不到值的原因和解决方法
    在使用PHP时,我们常常会遇到POST提交表单却无法获取表单数据的情况,可能会让我们感到困惑。这种情况很常见,但也很容易解决。本文将介绍在Post提交表单时无法获取表单数据的原因及解决方法。一. 原因分析网络问题在网络连接不稳定的情况下,P...
    99+
    2023-05-14
  • php接收不到ios值如何解决
    本篇内容介绍了“php接收不到ios值如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php接收不到ios值的解决办法:1、将afn设...
    99+
    2023-07-04
  • thinkphp5显示类不存在如何解决
    这篇文章主要介绍“thinkphp5显示类不存在如何解决”,在日常操作中,相信很多人在thinkphp5显示类不存在如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp5显示类不存在如何解决...
    99+
    2023-07-04
  • vue中attr取不到属性值如何解决
    vue中attr取不到属性值如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。js:$(document).ready(function(...
    99+
    2022-10-19
  • thinkphp5提示控制器不存在如何解决
    本篇内容介绍了“thinkphp5提示控制器不存在如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!thinkphp5提示控制器不存在的...
    99+
    2023-07-04
  • nacos中使用@Value注解获取不到值如何解决
    这篇文章主要介绍了nacos中使用@Value注解获取不到值如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nacos中使用@Value注解获取不到值如何解决文章都会有所收获,下面我们一起来看看吧。可能导...
    99+
    2023-07-05
  • 如何解决thinkphp5中图片处理遇到的问题
    这篇文章将为大家详细讲解有关如何解决thinkphp5中图片处理遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。图片处理中遇到的问题我额外把图片的处理和上传封装成了一个类,返回保存的图片路径在图片...
    99+
    2023-06-15
  • php获取不到网址中的值该如何解决
    本篇文章为大家展示了php获取不到网址中的值该如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。php获取不到网址中的值的解决办法:1、查看url规则;2、将规则修改为“RewriteRule ...
    99+
    2023-06-26
  • ajax请求后台收不到返回值如何解决
    这篇文章将为大家详细讲解有关ajax请求后台收不到返回值如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、async值为true (异步)当ajax发送请求后,在等待server端返...
    99+
    2023-06-08
  • springboot中不能获取post请求参数如何解决?
    这篇文章将为大家详细讲解有关springboot中不能获取post请求参数如何解决?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题描述最近在做微信小程序,用的spring boot做后端,突然发现客户...
    99+
    2023-05-30
  • php post不能接收数据的问题如何解决
    这篇文章主要介绍“php post不能接收数据的问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php post不能接收数据的问题如何解决”文章能帮助大家解决问题。一、如何使用PHP接收P...
    99+
    2023-07-06
  • windows找不到regsvr32jscript.dll如何解决
    如果Windows找不到"regsvr32 jscript.dll"文件,可以尝试以下方法来解决问题:1. 检查文件路径:确保“js...
    99+
    2023-09-29
    Windows
  • win10找不到gpedit.msc如何解决
    本文小编为大家详细介绍“win10找不到gpedit.msc如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10找不到gpedit.msc如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win...
    99+
    2023-07-01
  • idea找不到WebApplication如何解决
    如果你找不到Web应用的创意,可以尝试以下方法来解决:1. 寻找灵感源:浏览网络上的各种网站、应用和论坛,以获得他人的创意和思路。观...
    99+
    2023-09-21
    idea
  • Win10找不到msvcr100dll如何解决
    要解决Win10找不到msvcr100dll的问题,可以尝试以下方法:1. 重新安装Microsoft Visual C++ Red...
    99+
    2023-10-20
    Win10
  • pycharm找不到pygame如何解决
    如果您安装了Pygame但PyCharm无法找到该库,可以尝试以下解决方法:1. 确认已经正确安装Pygame库。可以在命令行中运行...
    99+
    2023-09-13
    pycharm pygame
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作