>  기사  >  php教程  >  PHP ajax에서 게시물 요청을 제출할 때 배열이 잘리는 문제에 대한 솔루션

PHP ajax에서 게시물 요청을 제출할 때 배열이 잘리는 문제에 대한 솔루션

WBOY
WBOY원래의
2016-10-22 00:00:061491검색

1. 장면

오늘 특산품 목록을 저장해 보니 프론트엔드에 2,300개가 넘는 데이터가 있는데 실제 서버에서는 166개의 데이터만 받아 데이터베이스에 저장해 두었습니다

2. 프로세스

디버깅 결과 프런트 엔드 페이지에서 게시물 요청을 제출했을 때 데이터 양이 정확했지만 서버에서 166개의 항목만 수신할 수 있는 것으로 나타났습니다.

처음에는 게시물 요청 길이가 한도를 초과한 줄 알았는데, 요청 내용을 보니 200K밖에 안 되었고, 게시물 요청은 기본적으로 8M 이내의 데이터 전송을 지원합니다.

그래서 PHP 내부 설정으로 인해 발생하는 것이 아닌가 의심했습니다. 나중에 Baidu에서 확인해보니 max_input_vars 구성 항목이 PHP 5.3.9 버전 이후에 추가되었습니다. 목적은 해시 충돌을 방지하기 위한 것입니다 .

이 경우 구성 항목을 변경하세요. 기본값은 1000이며, 서비스를 다시 시작한 후 10000으로 변경하면 서버는 1666이며 이전 10배는 구성 항목을 조정한 후의 배수와 정확히 같습니다.

단, max_input_vars를 100,000으로 설정해도 부족할 수 있으니 다른 방법을 찾아야 합니다.

3. 최종 해결 방법

1. 프런트엔드는 배열을 json으로 변환하여 전송합니다. 즉, JSON.stringify(goodsList)

2. 서버는 $goodsList = json_decode($_POST['goodsList'], true)를 수신하고 구문 분석합니다.

3. 테스트 결과 프런트 엔드에서 전송된 데이터를 서버에서 얻을 수 있는 것으로 확인되었으며 문제가 성공적으로 해결되었습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.