laraval中使用post提交資料中報token的問題
阿新 • • 發佈:2019-01-02
在我們使用laravel框架做專案時,經常會使用post方法提交資料,例如檔案上傳,表單提交,或者處理一些大資料。
我相信大家對於用post提交表單資料時的token處理都懂,就是傳一個隱藏域
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
或者在blade模板引擎
<input type="hidden" name="_token" value="{{ csrf_token() }}">
而我所要說的是在laravel中使用ajax時對token的解決首先我們要了解post提交資料是在header頭顯示
所以我們可以採用官方的解決方法
< meta name="csrf-token" content="{{ csrf_token() }}" />
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
這樣我們在每次呼叫ajax時都會自動載入CSRF token我們還可以在post請求是將
CSRF token當引數傳過去。
我們可以開啟瀏覽器調節工具檢視
CSRF token值是否傳過去。
注意!!!當我們提交大資料如視訊時別忘了改php.ini中post傳送資料大小,如果過小所傳資料會被自動擷取。