>백엔드 개발 >PHP 튜토리얼 >PHP 제한이 높음에도 불구하고 AJAX POST 데이터가 제한되는 이유는 무엇입니까?

PHP 제한이 높음에도 불구하고 AJAX POST 데이터가 제한되는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-04 06:05:02802검색

Why Is My AJAX POST Data Limited Even With High PHP Limits?

PHP/Apache/AJAX POST 데이터 제한

AJAX를 사용하여 POST를 통해 대용량(200만 자)의 데이터를 전송하려는 경우 (jQuery), PHP 측에서 데이터 검색에 실패하고 "정의되지 않은 인덱스" 오류를 반환합니다. 이 문제는 충분히 높은(256M) php.ini의 post_max_size 설정과 관련이 없습니다.

제한 조사

문제는 여러 제한이 적용되어 있다는 것입니다. 프로세스에 관련된 다양한 구성 요소별:

  1. Apache:

    • LimitRequestBody: 들어오는 POST 요청의 최대 크기를 제어합니다. 실제 제한은 기본적으로 약 2GB인지 확인하려면 Apache 오류 로그를 확인해야 합니다.
  2. PHP:

    • post_max_size: POST 데이터의 크기를 제한합니다. 이 설정이 php.ini에서 충분히 높게 설정되어 있는지 확인하세요(예: 256M).
    • upload_max_filesize: POST 데이터와는 관련이 없지만 완전성을 위해 언급할 가치가 있습니다.
    • max_input_time: 최대 시간을 제어합니다. POST 데이터 처리가 허용됩니다. 시간 초과를 방지하려면 큰 값으로 설정하십시오(예: -1).
    • max_input_nesting_level: POST 데이터에서 중첩 배열의 깊이를 제한합니다. 데이터에 깊게 중첩된 배열이 포함된 경우 이 값을 늘려야 할 수도 있습니다.
    • max_execution_time: 문제의 원인일 가능성은 낮습니다.
    • memory_limit: PHP 하위 프로세스에 충분한 메모리가 있는지 확인합니다. 데이터를 처리합니다. 이 설정을 적절하게 조정합니다(예: 256M).
    • max_input_vars: POST 요청의 변수 수를 제한합니다. 데이터에 많은 요소가 포함된 경우 이 값을 늘려야 할 수도 있습니다.

해결책

Apache의 LimitRequestBody가 다음과 같은 경우 도달하면 컴파일된 제한을 초과하므로 데이터를 직접 POST할 수 없습니다. 데이터를 더 작은 청크로 나누어 여러 POST 요청으로 보내야 합니다.

위 내용은 PHP 제한이 높음에도 불구하고 AJAX POST 데이터가 제한되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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