Saya perlu mengirim JSON (yang dapat saya rangkai) ke server dan mengambil JSON yang dihasilkan di sisi pengguna, tanpa menggunakan JQuery.
Jika saya harus menggunakan GET, bagaimana cara mengirimkan JSON sebagai parameter? Apakah ada risiko terlalu lama?
Jika saya harus menggunakan POST, bagaimana cara menyetel ekuivalen dari suatu onload
fungsi di GET?
Atau haruskah saya menggunakan metode lain?
UCAPAN
Pertanyaan ini bukan tentang mengirim AJAX sederhana. Ini tidak boleh ditutup sebagai duplikat.
javascript
json
post
get
xmlhttprequest
Jérôme Verstrynge
sumber
sumber
XMLHttpRequest
. Terlepas dari namanya, Anda dapat menggunakannya untuk data JSON (dan begitulah sebenarnya cara jQuery melakukannya di latar belakang).sending
permintaan ajax, yang merupakan hal yang cukup umum. Yang ini memintasending
tetapi danreceiving JSON
dalam JavaScript murni. Selain itu, untuk mengirim kembali JSON ini, Anda harus tahu cara menyelesaikan bagian masalah iniserver-side
yang merupakan hal lain yang tidak disebutkan dalam pertanyaan yang dirujuk.onreadystatechange
adalah apa yang Anda gunakan untuk meniruonload
, seperti yang ditunjukkan oleh jawaban yang diterima di bawah ini. Untuk penguraian, Anda cukup menggunakanJSON.parse()
(sekali lagi, seperti yang ditunjukkan dalam jawaban), tetapi saya berasumsi bahwa Anda sudah tahu itu karena Anda menyebutkan merangkai dalam pertanyaan. Saya telah mencoba membantu Anda dengan menunjukkan bukan 1 tetapi 2 pertanyaan yang mencakup poin-poin ini. Jelas ada beberapa perbedaan - jarang ada 2 pertanyaan yang persis sama - tetapi itu sepele jika Anda sudah tahu cara merangkai dan mengurai JSON. Meskipun demikian, karena Anda dan @ hex494D49 tidak setuju, saya menominasikan ini untuk dibuka kembali.Jawaban:
Mengirim dan menerima data dalam format JSON menggunakan metode POST
Mengirim dan menerima data dalam format JSON menggunakan metode GET
Menangani data dalam format JSON di sisi server menggunakan PHP
Batas panjang permintaan HTTP Get bergantung pada server dan klien (browser) yang digunakan, dari 2kB - 8kB. Server harus mengembalikan status 414 (Request-URI Too Long) jika URI lebih panjang dari yang dapat ditangani server.
Catatan Seseorang berkata bahwa saya dapat menggunakan nama negara bagian daripada nilai negara bagian; dengan kata lain saya dapat menggunakan
xhr.readyState === xhr.DONE
alih-alihxhr.readyState === 4
Masalahnya adalah bahwa Internet Explorer menggunakan nama negara bagian yang berbeda sehingga lebih baik menggunakan nilai negara bagian.sumber
xhr.status === 200
.XHR failed loading: POST
Menggunakan pengambilan api baru :
sumber
JSON.stringify
dua kali.