我有一个控制器,它使用 Ajax 请求并使用数据库操作的结果进行响应。Ajax 调用由一组 ID(整数数组)和一条消息组成。
当 ID 集具有正常的 ID 时(我用 20 个 ID 进行了测试),Ajax 调用会正常返回。尝试发送 3000 个 ID 时,我几乎立即收到响应,出现 403 禁止访问错误。
这可能是Codeigniter或Apache服务器错误。我寻找它,但没有找到任何答案。
提前谢谢。
在你的 AJAX 代码上,你是否通过 GET 发送它?如果是这样,请将其更改为 POST
$.ajax({
type: "POST",
url: 'url',
data: data,
dataType: "json",
cache: false,
contentType: false,
processData: false,
success: function (data) {
//some code
}
});
默认情况下 php.ini 有 1000 个max_input_vars变量。
这里有如何更改的文档
更改它,您将解决问题。我以前也有同样的问题。
例如:将以下行放入 .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