오늘 특산품 목록을 저장해 보니 프론트엔드에 2,300개가 넘는 데이터가 있는데 실제 서버에서는 166개의 데이터만 받아 데이터베이스에 저장해 두었습니다
디버깅 결과 프런트 엔드 페이지에서 게시물 요청을 제출했을 때 데이터 양이 정확했지만 서버에서 166개의 항목만 수신할 수 있는 것으로 나타났습니다.
처음에는 게시물 요청 길이가 한도를 초과한 줄 알았는데, 요청 내용을 보니 200K밖에 안 되었고, 게시물 요청은 기본적으로 8M 이내의 데이터 전송을 지원합니다.
그래서 PHP 내부 설정으로 인해 발생하는 것이 아닌가 의심했습니다. 나중에 Baidu에서 확인해보니 max_input_vars 구성 항목이 PHP 5.3.9 버전 이후에 추가되었습니다. 목적은 해시 충돌을 방지하기 위한 것입니다 .
이 경우 구성 항목을 변경하세요. 기본값은 1000이며, 서비스를 다시 시작한 후 10000으로 변경하면 서버는 1666이며 이전 10배는 구성 항목을 조정한 후의 배수와 정확히 같습니다.
단, max_input_vars를 100,000으로 설정해도 부족할 수 있으니 다른 방법을 찾아야 합니다.
1. 프런트엔드는 배열을 json으로 변환하여 전송합니다. 즉, JSON.stringify(goodsList)
2. 서버는 $goodsList = json_decode($_POST['goodsList'], true)를 수신하고 구문 분석합니다.
3. 테스트 결과 프런트 엔드에서 전송된 데이터를 서버에서 얻을 수 있는 것으로 확인되었으며 문제가 성공적으로 해결되었습니다.