Chupachar
@Chupachar
front-end dev

Как правильно сформировать url с наличием кодировки %5B%5D в fetch?

Всем привет, временем ранее был написан некий запрос на ajax который отлично отрабатывал и я решил его переписать на fetch. В данном случае, как видно на скриншоте в верхнем url (ajax) присутствует кодировка %5B%5D которую ajax запрос видимо с помощью своей магии добавил в url.
63977e1762a32855449963.jpeg
В fetch же кодировка не имеется и я получаю статус 500. Подскажите пожалуйста как можно решить задачу.
Код:
let TariffCalculationPassObj = new URLSearchParams({
      FreightID: FreightID.dataset.id,
      CabinCategoryID: cart.id,
      Accommodation: acсommodationPass,
      PassTypeIDS: dataID,
    });

    const urlTariffCalculationPassenger = `${route(
                    "TariffCalculationPassenger"
                )}?${TariffCalculationPassObj}`;

    const xCSRFTOKEN = document
      .querySelector('meta[name="_token"]')
      .getAttribute("content");
    const options = {
      method: "GET",
      headers: {
        "X-CSRF-TOKEN": xCSRFTOKEN,
      },
    };

    fetch(urlTariffCalculationPassenger, options)
      .then((response) => response.text())
      .then((result) => {
        console.log(result)
      })
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
присутствует кодировка %5B%5D которую ajax запрос видимо с помощью своей магии добавил в url.
Это квадратные скобки, которые скорее всего говорят о нескольких инпутах с одним именем. Ну или данные в переменой - массив. Обычный url encode.

В fetch же кодировка не имеется и я получаю статус 500.
Стоит посмотреть ошибку, которая отдается с сервера.

Подскажите пожалуйста как можно решить задачу.
Неплохо бы зайти в инструменты разработчика и сравнить нетворк запросы от "аякса" и фетч, в частности как выглядит пэйлоад. Тогда будет понятно куда копать, хотя серверная ошибка и так должна по идее дать ответ.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы