91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkphp5 post得不到值如何解決

發布時間:2022-12-06 09:43:38 來源:億速云 閱讀:179 作者:iii 欄目:編程語言

這篇文章主要介紹了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得不到值如何解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西安市| 灌阳县| 奉新县| 民权县| 陇南市| 湖北省| 株洲县| 磐安县| 托克逊县| 酒泉市| 漯河市| 时尚| 三穗县| 莱阳市| 马龙县| 通化县| 耒阳市| 南开区| 磐石市| 资溪县| 阳谷县| 临朐县| 喀什市| 库车县| 天镇县| 鹤壁市| 周口市| 南城县| 永康市| 高邑县| 正定县| 灵台县| 遵义市| 东阿县| 视频| 安顺市| 婺源县| 武川县| 改则县| 枝江市| 岳普湖县|