当前位置: 首页 > 面试题库 >

如何在Laravel中使用jQuery ajax请求自动添加X-CSRF-TOKEN

朱季
2023-03-14
问题内容

如何在我的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.7resources/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);
    }
 });


 类似资料:
  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ

  • Symfony中的默认CSRF预防是基于表单的(如果使用提供的表单生成器,则会自动发生)。然而,对于AJAX请求,手动将CSRF令牌附加到每个HTTP请求,然后手动检查每个请求,这是非常繁琐的。 一个好的方法是将令牌嵌入为HTTP标头,如本问题的注释中建议的那样。jQuery然后可以被配置为在每个请求中包含这个标头,如这里所述。 我的问题是如何在Symfony内最好地处理这个问题?我可以使用Twi

  • 我有一个代码凌空代码 我该如何设置一个名为Authorization的标题??

  • 问题内容: 我正在尝试为我的网站上的表单添加一些安全性。一种形式是使用AJAX,另一种形式是简单的“与我们联系”形式。我正在尝试添加CSRF令牌。我遇到的问题是令牌有时仅在HTML“值”中显示。其余时间,该值为空。这是我在AJAX表单上使用的代码: PHP: 的HTML 有什么建议么? 问题答案: 对于安全代码,请不要以这种方式生成令牌: 是可以预见的 最多只加29位熵 不添加熵,而是确定性地将其

  • 我试图创建一个带有动态预填充字段的Django表单:也就是说,当从下拉菜单中选择一个字段()时,其他字段会自动预填充相应的数据。为此,我希望在选择下拉选项后立即向服务器发送POST请求。 到目前为止,我已经尝试了以下模板(以下https://docs.djangoproject.com/en/2.0/ref/csrf/): 但是,当我选择一个下拉选项时,我会得到一个 新:17未捕获的语法错误:意外

  • 如何使用自定义请求进行验证,我的请求使用数组键 [编辑][代码更新]显示错误: 传递给App\Http\Controllers\Controller::validate()的参数1必须是给定数组的Illumbite\Http\Request的实例,