通常我們使用ajax與php交互時(shí),我習(xí)慣查詢用GET方式剔难,提交數(shù)據(jù)以POST方式胆屿。我們都知道POST默認(rèn)情況下可以一次提交8M的數(shù)據(jù),這算是一個(gè)非常大的量了偶宫,一般情況下我們一次提交的數(shù)據(jù)基本是不會(huì)超過這個(gè)數(shù)非迹。然而,PHP從5.3.9開始增加了一個(gè)變量max_input_vars纯趋,用來提交限制表單數(shù)量憎兽。踩這個(gè)坑是在一次數(shù)據(jù)提交中冷离,由于是列表多選,提交的時(shí)候總出錯(cuò)纯命。debug的時(shí)候西剥,打印$_POST發(fā)現(xiàn)每次都是剛好1000個(gè)元素,而有些固定的參數(shù)居然沒有了亿汞。第一反映肯定是被截?cái)嗔瞬t空,必然是配置有問題。于是直接就去檢查php的配置文件(當(dāng)時(shí)也忘了nginx也有可能限制疗我,但事實(shí)證明沒有)咆畏。在php.ini里一通搜索,因?yàn)橐膊恢朗鞘裁磁渲孟拗屏宋饪悖椭苯影搓P(guān)鍵字limit和max去搜旧找,最后鎖定目標(biāo) max_input_vars = 1000,百度查證果然是這貨嚼摩。當(dāng)即將限制數(shù)值改大钦讳,重啟php-fpm就解決了。
反思:事實(shí)上枕面,通過這種改大限制的方式也是治標(biāo)不治本愿卒,最好還是從源頭上改變,提交數(shù)據(jù)時(shí)潮秘,將數(shù)據(jù)整合好琼开,不要有大量表單的提交。