首页 > 解决方案 > How to pass a valid CSRF token to AdonisJs using jQuery?

问题描述

I am using datatable edit and delete button and performing CURD operation but request can't get jquery ajax post id...

code Controller: QuestionController

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

Jquery AJAX Post Request Code

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

Errors: HttpException EBADCSRFTOKEN: Invalid CSRF token

help me how to solve and post ajax request and get Adonis Js request...

标签: javascriptjqueryadonis.js

解决方案


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

  1. 在你的视图中生成令牌,你可以把它放在任何你想要的地方,在下面的例子中,我将它存储为一个数据属性:
<div class="my-class" data-csrf-token="{{ csrfToken }}"></div>
  1. 用 jQuery 获取它并在 post 请求中传递它:
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);
  });
}

推荐阅读