LaravelとAngularを混在させるアプリケーションでは、Angularサービスからルートを呼び出すときにこの永続的なCSRF token mismatch
エラーが発生しています。Laravel/AngularアプリケーションのCSRFトークンの不一致
ROUTES
Route::group(['middleware' => ['web'] ], function() {
// non-auth routes (e.g. signup, login) ...
Route::group(['middleware' => 'auth'], function() {
Route::get('w/{ignore?}', function() { return view('writer.index');})
->where('ignore', '.*');
Route::match(['get', 'post'], 'doc/open', '[email protected]');
});
});
をwriter.index
ビューはトークンエラー(ユーザが認証されています)せずに罰金を示しています。それは設定していますどのようにこれは、多かれ少なかれです。
VIEWを含む:角度から
<meta name="csrf-token" content="{{ csrf_token() }}" />
と
<script>
$(function(){
$.ajaxPrefilter(function(options, originalOptions, xhr) {
var token = $('meta[name="csrf-token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-CSRF-TOKEN', token);
}
});
});
</script>
を、サービスがtoken mismatch error
返し$http.post
上doc/open
経路への要求を生成しています。
私はヘッダーを確認しました。$http.post
は実際にX-XSRF-TOKEN
の値を送信しました。ただし、このヘッダー値は、CookieのXSRF-TOKEN
の値と一致しません。それが不一致なら、それはなぜ起こっていますか?
Laravelから受信したx-xsrfが既に送信されているため、角度を設定する必要はありません。https://laravel.com/docs/5.2/routing#csrf-x-xsrf-token – naneri
@naneriありがとうございます。しかし、私はそれを削除する場合、私はまだエラーが発生します。 – greener
AJAX通話中に角ツールで角を送信してもdevツールでチェックできますか?どのバージョンのAngularを使用していますか? – naneri