Had POST PHP/Apache/AJAX
Apabila cuba menghantar data POST melebihi 2 juta aksara melalui AJAX dalam jQuery, anda mungkin menghadapi isu di mana data diterima sebagai kosong di sebelah PHP. Ini selalunya disebabkan oleh pengehadan dalam pelbagai komponen sistem.
Apache
Apache mempunyai parameter yang dipanggil LimitRequestBody, yang secara lalai ditetapkan kepada sekitar 2GB. Jika saiz POST melebihi had ini, Apache akan menolak permintaan tersebut dan tiada data akan diterima di sebelah PHP. Semak log ralat Apache anda untuk mendapatkan butiran yang lebih khusus.
PHP
PHP mempunyai beberapa parameter yang boleh menjejaskan pengendalian data POST:
- post_max_size : Ini secara langsung menentukan saiz maksimum data POST yang PHP boleh terima. Tetapkan nilai ini kepada amaun yang sesuai, memastikan ia lebih besar daripada data yang anda ingin siarkan.
- upload_max_filesize: Walaupun mungkin tidak berkaitan, sesetengah pengguna telah melaporkan kejayaan dengan meningkatkan nilai ini.
- max_input_time: Jika permintaan POST mengambil masa terlalu lama untuk diselesaikan, parameter ini boleh menyebabkan masalah. Tetapkannya kepada nilai yang sesuai atau tetapkannya kepada -1 untuk melumpuhkan sebarang tamat masa.
- masa_pelaksanaan_maks: Walaupun tidak mungkin menjadi punca, ia patut memastikan nilai ini cukup tinggi untuk memproses permintaan POST yang besar.
- memory_limit: Jika data POST melebihi had memori untuk proses PHP, ia boleh menyebabkan masalah. Laraskan nilai ini mengikut keperluan.
Pertimbangan Lain
- Semak pengehadan dalam mana-mana pelayan proksi atau pengimbang beban di hadapan pelayan anda.
- Pertimbangkan untuk memecahkan data POST yang besar kepada bahagian yang lebih kecil jika saiznya melebihi had sistem.
Atas ialah kandungan terperinci Mengapakah data AJAX POST saya melebihi 2 juta aksara tiba kosong di sebelah PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!