CodeIgniter 控制器上的 Ajax 调用会导致 403 禁止


Ajax call on CodeIgniter controller results in 403 Forbidden

我正在使用 CodeIgniter 3.x 开发与 Ajax。我有一个可以从浏览器访问的控制器/方法。但是,当我尝试使用 Ajax 请求/调用该页面时,它似乎总是导致 403 禁止错误。

我在各种搜索引擎(包括StackOverflow)上搜索过,它们都出现了一些类似的问题。他们都没有明确的解决方案来解决我的问题,我已经坚持了很长时间。我可以访问不使用带有 Ajax 请求的 CI 加载的页面。我的 CI 配置似乎有些问题。

我首先想到了一些与会话相关的问题,但是在完全在 CI 中打开会话后,它不起作用。下面是我用来发出 Ajax 请求的一些代码,在我看来这很好,应该可以工作(就像在非 CI 页面上一样)。

$.ajax({
    url : data_url,
    type: 'POST',
    data: pay_load,
    async: false,
    success: function(data) {
        result = JSON.parse(data);
    }
});

您的ajax data必须包含隐藏的 CSRF 令牌字段的值。 这是使用标准表单操作提交的部分,但在执行ajax时丢失。