【问题标题】:laravel 419 (unknown status)laravel 419(未知状态)
【发布时间】:2019-07-16 19:30:30
【问题描述】:

7 项目和 VueJs2 这是我的 VueJs2 代码

mounted: function() {
   if(this.edit != null)
   {
        var token = document.head.querySelector('meta[name="csrf-token"]');
        console.log(token);
        $.ajax({
            type:'POST',
            url: path+'get_voucher_data',
            data: [{'_token':token}],
            success:(data) => {
                console.log(data);
             }
        });
   }
}

但我有这个错误:

POST http://localhost/test/public/get_voucher_data 419 (unknown status)

另外,这是我的刀片代码:

<meta name="csrf-token" content="{{ csrf_token() }}">

有谁知道为什么会发生这种情况,我该如何解决?

【问题讨论】:

    标签: laravel vue.js token


    【解决方案1】:

    Laravel 有一个名为 VerifyCsrfToken 的中间件默认启用。它确保所有 POST 请求都有一个 csrf 令牌。此令牌确保请求仅来自我们的应用程序,而不是来自任何第三方 scraper 或表单提交工具。

    当控制器在请求中没有得到_token时,它会抛出错误。

    您似乎正在尝试发送但不正确。更新到这个:

    var token = $('meta[name="csrf-token"]').attr('content');
    
    data: {
       _token : token 
    },
    

    目前您关注的没有正确发送令牌:

    data: [{'_token':token}]
    

    更简单的配置:

    您可以设置 jquery ajax,而不是在每个 ajax 请求中发送 _token:

    $.ajaxSetup({
        data: {
            _token: $('meta[name="csrf-token"]').attr('content')
        }
    });
    

    那么每一个ajax请求都会自动有这个,不需要在每一个ajax请求数据中重新指定。

    【讨论】:

      【解决方案2】:

      您也可以在正文中发送令牌。确保将其作为 json 发送,JSON.stringify 正文并将内容类型添加到标题中。

      fetch("/route-to-post", {
          method: 'POST',
          headers: {
              'Content-Type': 'application/json'
          },
          body: JSON.stringify({
              _token: token
          })
      })
      

      【讨论】:

        【解决方案3】:

        尝试将您的令牌放在标题上:

        headers: {
              'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        

        【讨论】:

          猜你喜欢
          • 2018-05-26
          • 2019-10-22
          • 2018-07-18
          • 2018-09-20
          • 2018-08-24
          • 2021-08-28
          • 1970-01-01
          • 2020-05-11
          • 2020-03-04
          相关资源
          最近更新 更多