如何使用jQuery将有效的CSRF令牌传递给AdonisJs?

时间:2019-01-03 10:01:55

标签: javascript jquery adonis.js

我正在使用数据表编辑和删除按钮并执行CURD操作 但是请求无法获取jquery ajax发布ID ...

代码 控制器:QuestionController

async findby({ request, response}) {
    response.send(request.input('id'));
  }

jQuery AJAX发布请求代码

function QuestionEdit(id) {
  $.post(origin+'/dashboard/api/questions/findby', {id: id }, function(data){
      alert(data);
  });
}

错误: HttpException EBADCSRFTOKEN:无效的CSRF令牌

帮助我如何解决和发布ajax请求并获得Adonis Js请求...

1 个答案:

答案 0 :(得分:0)

您必须将令牌与请求一起传递。

  1. 在视图中生成令牌,您可以将其放在所需的任何位置,在下面的示例中,我将其存储为数据属性:
<div class="my-class" data-csrf-token="{{ csrfToken }}"></div>
  1. 使用jQuery获取并在发布请求中传递它:
function QuestionEdit(id) {
  const token = $('.my-class').data('csrf-token');
  const params = { 
    id: id, 
    _csrf: token
  };

  $.post(origin + '/dashboard/api/questions/findby', params, function(data) {
    alert(data);
  });
}