XMLHttpRequest – bu JavaScript da HTTP so’rovlar qilish imkonini beruvchi o’rnatilgan brauzer obyekti.
Nomida “XML” so’zi bo’lishiga qaramay, u nafaqat XML formatida, balki har qanday ma’lumotlar bilan ishlashi mumkin. Biz fayllarni yuklash/yuklab olish, jarayonni kuzatish va boshqa ko’p narsalarni qilishimiz mumkin.
Hozirda XMLHttpRequest ni bir oz eskirgan holda qoldiradigan boshqa, zamonaviyroq fetch metodi mavjud.
Zamonaviy veb-ishlanmada XMLHttpRequest uch sabab bilan ishlatiladi:
- Tarixiy sabablar: biz
XMLHttpRequestbilan mavjud script’larni qo’llab-quvvatlashimiz kerak. - Biz eski brauzerlarni qo’llab-quvvatlashimiz va polyfill’lar ishlatishni xohlamaymiz (masalan, script’larni kichik saqlash uchun).
- Bizga
fetchhali qila olmaydigan narsa kerak, masalan yuklash jarayonini kuzatish.
Bu tanish tuyuladimi? Agar ha bo’lsa, XMLHttpRequest bilan davom eting. Aks holda, Fetch ga o’ting.
Asoslar
XMLHttpRequest ikkita ishlash rejimiga ega: sinxron va asinxron.
Avval asinxronni ko’raylik, chunki u ko’pchilik hollarda ishlatiladi.
So’rov qilish uchun bizga 3 qadam kerak:
-
XMLHttpRequestyaratish:let xhr = new XMLHttpRequest();Konstruktor hech qanday argumentga ega emas.
-
Uni ishga tushirish, odatda
new XMLHttpRequestdan keyin darhol:xhr.open(method, URL, [async, user, password])Bu metod so’rovning asosiy parametrlarini belgilaydi:
method– HTTP-metod. Odatda"GET"yoki"POST".URL– so’rov qilinadigan URL, string, URL obyekti bo’lishi mumkin.async– agar aniq ravishdafalsega o’rnatilsa, so’rov sinxron bo’ladi, buni biroz keyinroq ko’rib chiqamiz.user,password– asosiy HTTP auth uchun login va parol (agar kerak bo’lsa).
Diqqat qiling,
openchaqiruvi, nomiga qaramay, ulanishni ochmaydi. U faqat so’rovni sozlaydi, lekin tarmoq faolligi faqatsendchaqiruvi bilan boshlanadi. -
Uni yuborish.