Сбой XMLHTTPRequest в Safari и Opera - PullRequest
       56

Сбой XMLHTTPRequest в Safari и Opera

0 голосов
/ 30 апреля 2020

У меня есть три конечные точки. Для одной конечной точки я использую метод GET, и он отлично работает. Для двух других конечных точек я использую метод PUT. В Safari я получаю «XMLHttpRequest не может загрузить ...» и «NetworkError: Произошла ошибка сети.». В Opera у меня 415 неподдерживаемых типов носителей.

var xhr = new XMLHttpRequest();
xhr.open('PUT', attemptUrl + '/' + mode, false);
xhr.send({state: attempt});

Я нашел это https://bugs.chromium.org/p/chromium/issues/detail?id=327014, но, насколько я знаю, перенаправления в этих конечных точках нет

1 Ответ

0 голосов
/ 30 апреля 2020

Есть несколько проблем с вашим кодом.

  • Синхронный режим устарел, но вы его включаете
  • Вы не установили заголовок Content-Type для описания типа содержимое, которое вы пытаетесь PUT
  • Вы передаете простой объект send вместо одного из форматов данных, которые он принимает

Возможно, вы пытаетесь PUT a JSON текст, поэтому вам нужно установить тип содержимого для JSON и закодировать ваш объект как JSON.

const data = {state: attempt};
const json = JSON.encode(data);
const xhr = new XMLHttpRequest();
xhr.open('PUT', attemptUrl + '/' + mode);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(json);
...