«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как отправлять данные формы с помощью Fetch API в разных форматах?

Как отправлять данные формы с помощью Fetch API в разных форматах?

Опубликовано 20 ноября 2024 г.
Просматривать:747

How do you send form data with Fetch API in different formats?

Публикация данных формы с помощью Fetch API

При использовании Fetch API для отправки данных формы следует учитывать два основных формата:

Multipart/ Form-Data

При использовании FormData для создания тела запроса данные автоматически отправляются в формате multipart/form-data. Это поведение FormData по умолчанию, и его нельзя изменить.

Application/x-www-form-urlencoded

Чтобы отправить данные в формате application/x-www-form-urlencoded, вы есть несколько вариантов:

1. Строка в кодировке URL:

fetch("api/xxx", {
    body: "[email protected]&password=pw",
    headers: {
        "Content-Type": "application/x-www-form-urlencoded",
    },
    method: "post",
});

2. Объект URLSearchParams:

const data = new URLSearchParams();
data.append("email", "[email protected]");
data.append("password", "mypassword");

fetch("api/xxx", {
    body: data,
    method: "post",
});

Обратите внимание, что указание заголовка Content-Type не требуется при использовании URLSearchParams, поскольку он автоматически устанавливает правильный тип контента.

3. URLSearchParams из FormData:

const data = new URLSearchParams(new FormData(formElement));

fetch("api/xxx", {
    body: data,
    method: "post",
});

Эта опция позволяет передать объект FormData напрямую для создания объекта URLSearchParams. Однако его поддержка браузерами может быть ограниченной, поэтому обязательно тщательно протестируйте его перед использованием.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3