yii框架去掉csrf的方法:1、通過(guò)“init”方法關(guān)閉csrf;2、在form表單中加入隱藏域;3、在AJAX中加入“_csrf”字段。
YII 關(guān)閉csrf的方法
第一種解決辦法是關(guān)閉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 });
備注:如果你的頁(yè)面沒(méi)有form的話,ajax的post提交是沒(méi)問(wèn)題的,用ajax的post提交會(huì)自動(dòng)產(chǎn)生_csrf
如果頁(yè)面有form 尤其是有file的話 ajax的post是不可以的,必須用get。
推薦:《yii教程》