在Codeigniter 4中对提交事件进行Ajax调用时得到403禁止

问题描述

我在网络中使用了csrf保护

每次我执行ajax调用时,我都会更新控制器发送的csrf令牌

一切正常

我的代码

var csrfName = '<?= csrf_token() ?>',csrfHash = '<?= csrf_hash() ?>';

  $(function() {
    $.ajax({
      url: "/categories/get",type: 'post',dataType: 'json',data: {
        [csrfName]: csrfHash,},success: function(result) {
        // update csrf token
        csrfName = result.csrfName;
        csrfHash = result.csrfHash;

        // my code ..

      },error: function(xhr,type,error) {
        console.log(error);
      }
    });

    $.ajax({
      url: "/services/get",error) {
        console.log);
      }
    });

但是当ajax调用提交事件时,它显示403(禁止),

代码

// Form Order
    $("form#form-order").submit(function(e) {
      e.preventDefault();
      let user = $("input[name=user_id]").val();
      let service = $("input[name=service_id").val();
      let data = $("input[name=data]").val();
      let quantity = $("input[name=quantity]").val();

      $.ajax({
        url: "/orders/new",type: "post",data: {
          user_id: user,service_id: service,data: data,quantity: quantity,[csrfName]: csrfHash,success: function(result) {
          // update csrf token
          csrfName = result.csrfName;
          csrfHash = result.csrfHash;

          // my code ..

        },error) {
          console.log(error);
        },});
    });

每次执行ajax调用时,我总是更新csrf令牌

而且,我的表单没有操作和方法属性,以确保未提交表单并更改csrf令牌

还是因为范围可变?

请帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)