6 сентябр 2025

XMLHttpRequest

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:

  1. Tarixiy sabablar: biz XMLHttpRequest bilan mavjud script’larni qo’llab-quvvatlashimiz kerak.
  2. Biz eski brauzerlarni qo’llab-quvvatlashimiz va polyfill’lar ishlatishni xohlamaymiz (masalan, script’larni kichik saqlash uchun).
  3. Bizga fetch hali 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:

  1. XMLHttpRequest yaratish:

    let xhr = new XMLHttpRequest();

    Konstruktor hech qanday argumentga ega emas.

  2. Uni ishga tushirish, odatda new XMLHttpRequest dan 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 ravishda false ga 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, open chaqiruvi, nomiga qaramay, ulanishni ochmaydi. U faqat so’rovni sozlaydi, lekin tarmoq faolligi faqat send chaqiruvi bilan boshlanadi.

  3. Uni yuborish.