Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Tidak Boleh Menyiarkan Data Bukan Perduaan Besar melalui AJAX?

Mengapa Saya Tidak Boleh Menyiarkan Data Bukan Perduaan Besar melalui AJAX?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 19:35:30665semak imbas

Why Can't I POST Large Non-Binary Data via AJAX?

Memahami Had Data PHP/Apache/AJAX POST

Soalan:

Tidak dapat POST data bukan binari yang besar melalui AJAX, menerima hasil kosong dalam PHP dengan ralat yang menunjukkan elemen $_POST yang tidak ditentukan.

Kod:

// JavaScript
$.ajax({
    data: {'data_string': string}
});

// PHP
$_POST['data_string']

Analisis:

Penyiasatan menyeluruh tentang had potensi yang mungkin menghalang proses POST adalah perlu untuk menyelesaikan isu ini.

Perkara untuk Dipertimbangkan:

  • Apache: LimitRequestBody mengehadkan saiz badan permintaan HTTP yang diterima oleh Apache. Biasanya ditetapkan kepada 2GB, tetapi nilai tertentu boleh berbeza-beza.
  • PHP: Beberapa parameter mempengaruhi pengendalian data POST:

    • post_max_size: Hadkan jumlah Data POST yang boleh diterima.
    • upload_max_filesize: Menetapkan saiz maksimum untuk muat naik fail.
    • max_input_time: Menentukan masa maksimum yang dibenarkan untuk input data POST.
    • max_input_nesting_level: Had tahap bersarang tatasusunan kompleks dalam data POST.
    • memory_limit: Mengekang memori yang tersedia untuk PHP, yang boleh memberi kesan kepada pemprosesan data POST yang besar.
    • max_input_vars: Hadkan bilangan pembolehubah yang dibenarkan dalam data POST .
  • Faktor Lain:

    • Pelayan Proksi: Proksi boleh mengenakan had mereka sendiri atas permintaan saiz badan.
    • Pelayar Sebelah Pelanggan: Keupayaan penyemak imbas boleh menjejaskan saiz data POST yang boleh dihantar.

Penyelesaian:

Untuk menyelesaikan isu ini , semak setiap parameter pengehad ini dalam Apache, PHP dan komponen lain yang terlibat. Pastikan ia melebihi saiz data POST yang dihantar.

Jika had Apache terbina dalam melebihi, pertimbangkan untuk memecahkan data yang besar kepada bahagian yang lebih kecil dan menghantarnya secara berperingkat.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyiarkan Data Bukan Perduaan Besar melalui AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn