首頁 >php教程 >php手册 >php ajax提交post請求出現陣列被截斷狀況的解決方法

php ajax提交post請求出現陣列被截斷狀況的解決方法

WBOY
WBOY原創
2016-10-22 00:00:061534瀏覽

一、場景

今天做保存專題商品列表的時候發現,前端明明有2300多條數據,但是實際服務端接受存入數據庫才166條

 

二、解決過程

經過調試發現前端頁面提交post請求時資料量是正確的,但到服務端只能接受到166條。

一開始以為是post請求長度超過限制,不過看了下請求內容才200多K,而post請求預設支援8M以內的資料傳輸。

於是懷疑可能是php內部配置導致的,後來百度了下果不其然發現max_input_vars這個配置項,該配置項是在php 5.3.9版本之後才加入的,目的是為了防止hash衝突

既然如此那就改下該配置項,預設是1000,改成10000;重啟服務後發現服務端獲取到的數據量是1666,是之前的10倍,正好也是配置項調整之後的倍數。

然而前端傳的資料量是不確定的,就算把max_input_vars設定成10萬,也有可能不夠用,還是另尋他法吧。

 

三、最終解決方法

1、前端將陣列轉換成json傳輸,即JSON.stringify(goodsList)

2、服務端接收到並解析$goodsList = json_decode($_POST['goodsList'], true);

3、測試發現前端傳過來的資料服務端都能取得到,問題圓滿解決

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn