【问题标题】:Codeigniter - 403 Forbidden Access when sending array with 3000 entries via AjaxCodeigniter - 通过 Ajax 发送具有 3000 个条目的数组时出现 403 禁止访问
【发布时间】:2017-03-30 19:43:35
【问题描述】:

我有一个控制器,它使用 Ajax 请求并以数据库操作的结果进行响应。 Ajax 调用由一组 ID(一个整数数组)和一条消息组成。

当这组 ID 有正常数量的 ID(我用 20 个 ID 测试)时,Ajax 调用正常返回。尝试发送 3000 个 ID 时,我几乎立即收到了 403 Forbidden Access 错误的响应。

这可能是 Codeigniter 或 Apache 服务器错误。我寻找它,但没有找到任何答案。

提前致谢。

【问题讨论】:

  • 你检查最大帖子大小了吗?
  • @ElaBuwa 我没有,如何查看?另外,如何检查 POST 请求的总大小? Firefox 上的网络选项卡仅显示标题大小和内容长度,而不是内容大小。
  • 检查的最大 POST 大小:8MB。
  • 内容长度是以字节为单位的内容大小
  • 内容长度不超过 8MB (8*2^20)。

标签: php jquery ajax codeigniter


【解决方案1】:

在您的 AJAX 代码上,您是通过 GET 发送的吗?如果是,请将其更改为 POST

$.ajax({
        type: "POST",
        url: 'url',
        data: data,
        dataType: "json",
        cache: false,
        contentType: false,
        processData: false,
        success: function (data) {
            //some code
        }
    });

【讨论】:

  • 我通过 POST 发送。当我选择了几个 ID 时,正确返回了 AJAX 调用。
【解决方案2】:

默认情况下 php.ini 有 1000 个 max_input_vars 变量。

Here你有文档如何改变

更改它,您将解决问题。我以前也有同样的问题。

例如:将以下行放入 .htaccess

php_value max_input_vars 3000
php_value suhosin.get.max_vars 3000
php_value suhosin.post.max_vars 3000
php_value suhosin.request.max_vars 3000

【讨论】:

    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多