yii框架去掉csrf的方法:1、透過「init」方法關閉csrf;2、在form表單中加入隱藏域;3、在AJAX中加入「_csrf」欄位。
YII 關閉csrf的方法
第一個解決方法是關閉Csrf
public function init(){ $this->enableCsrfValidation = false; }
第二個解決方法是在form表單中加入隱藏域
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">
第三種解決方法是在AJAX中加入_csrf欄位
var csrfToken = $('meta[name="csrf-token"]').attr("content"); $.ajax({ type: 'POST', url: url, data: {_csrf:csrfToken}, success: success, dataType: dataType });
備註:如果你的頁面沒有form的話, ajax的post提交是沒問題的,用ajax的post提交會自動產生_csrf
如果頁面有form 尤其是有file的話ajax的post是不可以的,必須用get。
推薦:《yii教學》
以上是yii框架怎麼去掉csrf的詳細內容。更多資訊請關注PHP中文網其他相關文章!