【问题标题】:Ezpay : csrf token not allowed in header, Laravel applicationEzpay:标头中不允许使用 csrf 令牌,Laravel 应用程序
【发布时间】:2018-04-12 07:53:15
【问题描述】:

我在布局刀片中包含了<script> $.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } }); </script>。 在结帐过程中,所有步骤都需要在 post 请求中使用 csrf 令牌。但是代币化过程

 EZPAY.API.tokenizeForm(form)
 .done(onSuccessfulTokenize)
  .fail(onFailedTokenize)

在最后一步显示此错误

加载失败 https://psp.stg.transactium.com/hps/CardToken/TokenFor?cardno=xxxxxxxxxxxxxxxx&expiry=xxxx&amount=xxxxxxx&cvv=xxx&currency=xxx&mode=MPI&sessionkey=xxxxxxxxxxxxxxxxxxxxxxx&_=xxx: 请求头字段 csrftoken 不允许 预检响应中的 Access-Control-Allow-Headers。

使用此标头,所有其他路线都可以正常工作

【问题讨论】:

    标签: javascript php ajax laravel


    【解决方案1】:

    .ajaxSetup 不需要手动设置 csrf 标头,只需在表单标签中添加 csrf 令牌即可。

    【讨论】:

    • 不,我有很多表格。我想继续这个方法
    • 好的,然后使用 headers: { 'X-CSRF-TOKEN' : $('meta[name= "csrf-token"]').attr('content) }
    • "csrftoken" 应该替换为 "X-CSRF-TOKEN" 我认为它会起作用。
    【解决方案2】:

    移动 $.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });从body标签到head标签解决了这个问题。我认为这是因为覆盖脚本

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 2021-01-14
      • 2015-10-16
      • 2021-03-14
      • 2022-01-04
      • 2018-11-10
      • 1970-01-01
      • 2014-09-01
      • 2019-08-24
      相关资源
      最近更新 更多