欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

thinkphp5post得不到值如何解決

這篇文章主要介紹了thinkphp5 post得不到值如何解決的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇thinkphp5 post得不到值如何解決文章都會(huì)有所收獲,下面我們一起來看看吧。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的慶云網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

thinkphp5 post得不到值是因?yàn)門P5是通過strpos函數(shù)在Header的content-type值中查找app/json字符串的,其解決辦法就是設(shè)置Header的content-type值為app/json即可。

解決 ThinkPHP5 無法接收 客戶端 Post 傳遞的 Json 參數(shù)

這段時(shí)間在學(xué)習(xí) API 開發(fā),從網(wǎng)上搞了一個(gè)課程在跟著做,就在昨天我又一次碰到了講師一路暢通我半天調(diào)試的情況,遇到的問題是我用 Postman 測(cè)試 API 某 Post 接口的時(shí)候無論怎么發(fā)送請(qǐng)求總是提示我參數(shù)驗(yàn)證失敗,在我調(diào)試的過程中某次采用通過 Body 表傳遞參數(shù)的方法,API 神奇地通了,于是我判斷是之前 Json 傳遞出了問題,就各種在網(wǎng)上搜,然而并沒有解決方法[不過 Get 了兩個(gè)知識(shí)點(diǎn)放在文章結(jié)尾處]。

關(guān)于 TP5 的問題度娘不行就只能查源代碼了,于是乎我就跟著錯(cuò)誤一點(diǎn)一點(diǎn)的打斷點(diǎn)終于被我發(fā)現(xiàn)了問題所在~

原來 TP5 是通過 strpos 函數(shù)在 Header 的 content-type 值中查找 app/json 字符串,也就是說你必須設(shè)置 Header 的 content-type 值為 app/json 才行,否則 TP5 不會(huì)認(rèn)為你傳入的是 Json 參數(shù)并給 Request::post 設(shè)值為空。

以上就解決了 TP5 無法接收 客戶端 Post 傳遞的 Json 參數(shù)的問題。

兩個(gè)知識(shí)點(diǎn):

  • content-type 為 "application/json" 的數(shù)據(jù) php 是不能直接識(shí)別的,所以導(dǎo)致 $_POST 數(shù)組為空。解決辦法:我們只要用 $GLOBALS['HTTP_RAW_POST_DATA'] 把原始數(shù)據(jù)取出來,然后再 json_decode 就行了[使用此方法,需要設(shè)置 php.ini 中的always_populate_raw_post_data 值為 On][$HTTP_RAW_POST_DATA ,包含了 POST 的原始數(shù)據(jù)。但這不是一個(gè)超全局變量,要在函數(shù)中使用它,必須聲明為 global ,或使用 $GLOBALS['HTTP_RAW_POST_DATA'] 代替。];

  • 可以通過 file_get_contents('php://input') 代替上面的方法直接獲取到傳入的 Json 參數(shù)[我在閱讀 TP5 源碼的時(shí)候發(fā)現(xiàn)他們也是用這個(gè)方法來獲取的初始值]。

thinkphp是什么

thinkphp屬于一種免費(fèi)的開發(fā)框架,能夠用于開發(fā)前端網(wǎng)頁(yè),最早thinkphp是為了簡(jiǎn)化開發(fā)而產(chǎn)生的,thinkphp同時(shí)也是遵循Apache2協(xié)議,最初是從Struts演變過來,也把國(guó)外一些好的框架模式進(jìn)行利用,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu),兼容了很多標(biāo)簽庫(kù)等模式,它能夠更方便和快捷的開發(fā)和部署應(yīng)用,當(dāng)然不僅僅是企業(yè)級(jí)應(yīng)用,任何php應(yīng)用開發(fā)都可以從thinkphp的簡(jiǎn)單、兼容和快速的特性中受益。

關(guān)于“thinkphp5 post得不到值如何解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“thinkphp5 post得不到值如何解決”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:thinkphp5post得不到值如何解決
分享路徑:http://www.chinadenli.net/article14/iphgde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司靜態(tài)網(wǎng)站微信公眾號(hào)用戶體驗(yàn)網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名