溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

thinkphp請(qǐng)求類型錯(cuò)誤如何解決

發(fā)布時(shí)間:2023-04-08 11:49:27 來源:億速云 閱讀:118 作者:iii 欄目:編程語言

今天小編給大家分享一下thinkphp請(qǐng)求類型錯(cuò)誤如何解決的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

首先,我們來了解一下請(qǐng)求類型的概念。在HTTP協(xié)議中,有GET和POST兩種請(qǐng)求方法,GET請(qǐng)求是把數(shù)據(jù)拼接在URL后面發(fā)送到服務(wù)器上,而POST請(qǐng)求是把請(qǐng)求數(shù)據(jù)放到HTTP請(qǐng)求的消息體中發(fā)送到服務(wù)器上。同時(shí),還有PUT、DELETE等方法。在ThinkPHP框架中,我們可以通過$_SERVER['REQUEST_METHOD']來獲取請(qǐng)求的方式。

如果我們?cè)谑褂肞OST方式請(qǐng)求時(shí)出現(xiàn)了“請(qǐng)求類型錯(cuò)誤”的提示,那么有可能的原因就是我們?cè)谑褂肞OST方式請(qǐng)求的時(shí)候,服務(wù)器無法獲取到POST參數(shù)。這里介紹兩種常見的情況:

1.表單中沒有加入csrf_token

在ThinkPHP中,為了防止表單偽造攻擊,我們必須在表單中加入csrf_token,以驗(yàn)證表單來源的合法性。而如果沒有加入表單中,則會(huì)出現(xiàn)“請(qǐng)求類型錯(cuò)誤”。解決方法是在表單中加入csrf_token標(biāo)簽,如下:

<form method="post">
    <!-- 在這里加入csrf_token標(biāo)志 -->
    <?php echo token();?>
    <input type="text" name="username" />
    <input type="password" name="password" />
    <button type="submit">提交</button>
</form>

2.未關(guān)閉CSRF防御

如果我們?cè)陂_啟了全局CSR防御的情況下,沒有在控制器中關(guān)閉csrf防御,則會(huì)出現(xiàn)“請(qǐng)求類型錯(cuò)誤”的提示。解決方法是在控制器中關(guān)閉csrf防御,代碼如下:

class IndexController extends Controller
{
    //關(guān)閉csrf防御
    protected $middleware = [
        \think\middleware\AllowCrossDomain::class,
        \think\middleware\CheckRequestCache::class,
        \think\middleware\SendFile::class,
        \think\middleware\ValidateRequest::class => [
            //關(guān)閉csrf防御
            'except' => ['login']
        ],
    ];
    
    //login方法
    public functtion login()
    {
        //...
    }
}

除了上述兩種情況外,還有一種可能是我們?cè)贏JAX請(qǐng)求時(shí),請(qǐng)求構(gòu)造錯(cuò)誤。具體來說,就是我們?cè)谑褂?.post()或$.ajax()方法請(qǐng)求時(shí),沒有正確的寫出dataType、contentType等參數(shù),導(dǎo)致請(qǐng)求類型錯(cuò)誤。

以上就是“thinkphp請(qǐng)求類型錯(cuò)誤如何解決”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI