对CodeIgniter控制器的Ajax调用导致403 Forbidden

时间:2015-01-01 00:07:39

标签: php jquery ajax codeigniter

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

我搜索了各种搜索引擎(包括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);
    }
});

1 个答案:

答案 0 :(得分:3)

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