如何在我的Laravel应用程序的Ajax请求(GET或POST)中自动添加csrf令牌,而无需将其手动添加到每个请求中。
我的ajax请求
$.ajax({ type:'post', url: "/email/unique", data: { "_token": "{{ csrf_token() }}", "email": email } success: function(data) { console.log(data); } });
在Laravel中,默认情况下, csrf令牌元标记 的值会通过Axios HTTP库进行注册。但是,如果您 不使用此库 ,则需要为应用程序手动配置此行为。
为此,请将令牌存储在HTML元标记中
<meta name="csrf-token" content="{{ csrf_token() }}">
然后,一旦创建了meta标签,就可以指示jQuery库自动将令牌添加到所有请求标头中。
为此,将代码添加到resources/js/bootstrap.js文件中Laravel 5.7,resources/assets/js/bootstrap.js以获取Laravel 5.6版本号及以下版本。
resources/js/bootstrap.js
Laravel 5.7
resources/assets/js/bootstrap.js
Laravel 5.6
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
没有csrf令牌的Ajax,因为它将自动添加
$.ajax({ type:'post', url: "/email/unique", data: { "email": email } success: function(data) { console.log(data); } });