一、场景
POST
方式传参数到接口- 报错:
Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
, - 翻译:警告:未知:输入变量超过1000。要增加限制,请更改php.ini中的max_input_vars。在第0行的未知位置
二、原因
- 意思就是输入(提交)的变量超过默认
1000
个了,如下: 报错
:POST 的参数超过1000(>1000) 1个page + 1个limit + 999个order_no = 1001
page:1
limit:10
order_no:["orderNo1", 'orderNo2', "...", "orderNo999"]
不报错
:POST的参数格式不超过1000(<=1000) 1个page + 1个limit + 998个order_no = 1000
page:1
limit:10
order_no:["orderNo1", 'orderNo2', "...", "orderNo998"]
三、解决
1、修改 php.ini 中的 max_input_vars(不建议)
- 修改 php.ini 中的
max_input_vars
,增加到 尽量大的值,比如 9000
重启 php
2、JSON.stringify方法把数组参数改为 Json的形式传到后台(建议)
JSON.stringify
方法把传的数组改为json字符串
,后台再把 json字符串转为数组
即可。- 【修改前】
<script>
let field = {};
field.page = 1;
field.limit = 10;
field.order_nos = ['order123', 'order456', '...', 'order5999'];
$.ajax({
url: '/index/index/test',
data: field,
type: 'POST',
success: function(res) {
},
error: function(res) {
alert('数据异常');
}
});
</script>
<script>
let field = {};
field.page = 1;
field.limit = 10;
field.order_nos = JSON.stringify(['order123', 'order456', '...', 'order5999']);
$.ajax({
url: '/index/index/test',
data: field,
type: 'POST',
success: function(res) {
},
error: function(res) {
alert('数据异常');
}
});
</script>