บางครั้งการส่งข้อมูลแบบ AJAX จากฟอร์มส่งไปประมวลผลใน Controller แบบ POST (อาจจะไม่ปลอดภัยเท่าไร) เกิดปัญหา Forbidden ทำให้ไม่สามารถส่งข้อมูลได้ เนื่องจากติดเรื่อง CSRF ป้องกันอยู่ แต่ก็สามารถทำการยกเลิก CSRF ได้ โดยกำหนดใน Action ของ Controller หรือ กำหนดใน method beforeAction() ได้เช่นกัน ตัวอย่างการกำหนดใน method beforeAction() ดังนี้
/**
* @inheritdoc
*/
public function beforeAction($action)
{
if ($action->id == 'my-disable-csrf-method') {
$this->enableCsrfValidation = false;
}
return parent::beforeAction($action);
}
ความคิดเห็น