JavaScript XMLHttpRequest.send() — надіслати запит
Метод send() надсилає запит. Аргумент — тіло: рядок, FormData чи Blob.
Загальний опис
Для GET тіла немає — викликається без аргументів.
Якщо передати FormData, браузер сам виставить Content-Type із правильною межею. Виставляти його вручну в цьому разі — типова помилка, після якої файл не доходить.
Виклик не блокує: код одразу йде далі, а результат приходить у onload.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| send | 1+ | 1+ | 1.2+ | 8+ | 12+ | 7+ |
| Переглядач | ||||
|---|---|---|---|---|
| send | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Три види тіла — і коли Content-Type не чіпати.
HTML
<form id="f">
<input name="title" value="Запис">
</form>
JS
const form = document.getElementById('f');
// GET — без тіла
const get = new XMLHttpRequest();
get.open('GET', '/api/data');
get.onerror = () => console.log('GET: сервера немає');
get.send();
// JSON — заголовок ставимо самі
const json = new XMLHttpRequest();
json.open('POST', '/api/save');
json.setRequestHeader('Content-Type', 'application/json');
json.onerror = () => console.log('POST JSON: сервера немає');
json.send(JSON.stringify({ id: 1 }));
// FormData — Content-Type НЕ чіпаємо: браузер сам додасть межу
const upload = new XMLHttpRequest();
upload.open('POST', '/api/upload');
upload.onerror = () => console.log('POST FormData: сервера немає');
upload.send(new FormData(form));
Коментарі
Коментарів ще немає — будьте першим!