Heim > php教程 > php手册 > Hauptteil

Lösung für das Abschneiden des Arrays beim Senden einer Post-Anfrage in PHP Ajax

WBOY
Freigeben: 2016-10-22 00:00:06
Original
1497 Leute haben es durchsucht

1. Szene

Als ich heute die spezielle Produktliste gespeichert habe, stellte ich fest, dass sich im Frontend mehr als 2.300 Daten befanden, der eigentliche Server jedoch nur 166 Daten akzeptierte und in der Datenbank speicherte

2. Lösungsprozess

Nach dem Debuggen wurde festgestellt, dass die Datenmenge korrekt war, als die Front-End-Seite die Post-Anfrage übermittelte, aber nur 166 Elemente vom Server empfangen werden konnten.

Zuerst dachte ich, dass die Länge der Post-Anfrage das Limit überschreitet, aber nachdem ich mir den Inhalt der Anfrage angesehen hatte, waren es nur mehr als 200.000, und die Post-Anfrage unterstützt standardmäßig die Datenübertragung innerhalb von 8 Millionen .

Ich vermutete also, dass es an der internen Konfiguration von PHP liegen könnte. Später überprüfte Baidu das Konfigurationselement max_input_vars. Dieses Konfigurationselement wurde nach der PHP-Version 5.3.9 hinzugefügt. Der Zweck besteht darin, Hash-Konflikte zu verhindern .

Ändern Sie in diesem Fall das Konfigurationselement Der Standardwert ist 1000, ändern Sie ihn auf 10000; nach dem Neustart des Dienstes wird festgestellt, dass die vom Server ist 1666, was den vorherigen 10 Malen entspricht, also genau dem Vielfachen, nachdem die Konfigurationselemente angepasst wurden.

Die vom Frontend übertragene Datenmenge ist jedoch ungewiss. Selbst wenn max_input_vars auf 100.000 eingestellt ist, reicht es möglicherweise nicht aus, daher sollten wir einen anderen Weg finden.

3. Endgültige Lösung

1. Das Frontend konvertiert das Array zur Übertragung in JSON, also JSON.stringify(goodsList)

2. Der Server empfängt und analysiert $goodsList = json_decode($_POST['goodsList'], true);

3. Der Test ergab, dass die vom Frontend gesendeten Daten vom Server abgerufen werden können, und das Problem wurde erfolgreich gelöst

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage