Saya telah mengembangkan aplikasi web PHP. Saya memberikan opsi kepada pengguna untuk memperbarui beberapa masalah sekaligus. Saat melakukannya, terkadang pengguna mengalami kesalahan ini. Apakah ada cara untuk meningkatkan panjang URL di apache?
php
apache
http-status-codes
JPro
sumber
sumber
Jawaban:
Di bawah Apache, batasnya adalah nilai yang dapat dikonfigurasi
LimitRequestLine
,. Ubah nilai ini menjadi nilai yang lebih besar dari defaultnya 8190 jika Anda ingin mendukung URI permintaan yang lebih panjang. Nilainya ada di /etc/apache2/apache2.conf . Jika tidak, tambahkan baris baru (LimitRequestLine 10000
) di bawahAccessFileName .htaccess
.Namun, perhatikan bahwa jika Anda benar-benar mencapai batas ini, Anda mungkin menyalahgunakannya sejak
GET
awal. Anda harus menggunakanPOST
untuk mengirimkan data semacam ini - terutama karena Anda bahkan mengakui bahwa Anda menggunakannya untuk memperbarui nilai. Jika Anda memeriksa tautan di atas, Anda akan melihat bahwa Apache bahkan mengatakan "Dalam kondisi normal, nilainya tidak boleh diubah dari default."sumber
POST
. Tidak ada tentang penggunaan POST yang menghalangi Anda untuk mengisi formulir yang sama dengan bidang yang baru saja diposting, jadi saya tidak yakin apa yang Anda maksud dengan itu.LimitRequestLine
di mana pun di file httpd.conf Anda, cukup tambahkan barisnya sendiri di mana pun Anda suka. Misalnya:LimitRequestLine 100000
Berdasarkan jawaban John, saya mengubah permintaan GET menjadi permintaan POST. Ini berfungsi, tanpa harus mengubah konfigurasi server. Jadi saya pergi mencari cara menerapkan ini. Halaman-halaman berikut sangat membantu:
Contoh jQuery Ajax POST dengan PHP (Perhatikan komentar sanitize diposting data) dan
http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Pada dasarnya, perbedaannya adalah bahwa permintaan GET memiliki url dan parameter dalam satu string dan kemudian mengirimkan null:
sedangkan permintaan POST mengirimkan url dan parameter dalam perintah terpisah:
Berikut adalah contoh yang berfungsi:
ajaxPOST.html:
ajaxPOST.php:
Saya baru saja mengirim lebih dari 12.000 karakter tanpa masalah.
sumber
Saya memiliki solusi sederhana.
Misalkan URI Anda memiliki string
stringdata
yang terlalu panjang. Anda cukup memecahnya menjadi beberapa bagian tergantung pada batas server Anda. Kemudian kirimkan yang pertama, dalam kasus saya untuk menulis file. Kemudian kirimkan yang berikutnya untuk ditambahkan ke data yang ditambahkan sebelumnya.sumber
Saya mendapat kesalahan ini setelah menggunakan $ .getJSON () dari JQuery. Saya baru saja mengubah postingan:
sumber
Kutipan dari RFC 2616: Hypertext Transfer Protocol - HTTP / 1.1 :
sumber