Fetch выдает «TypeError: Failed to fetch» ​​для успешного запроса того же источника - PullRequest
0 голосов
/ 18 мая 2018

Мы столкнулись с несовместимыми ошибками клиента, когда одностраничное приложение JavaScript отправляло запросы на выборку.Следует отметить, что все они запросы одного и того же происхождения .

let request = new Request(url, options);
...
window.fetch(request)
  .then(response => response.json())
  .then(data => ...)
  .catch(error => ...)

Около 5% обещаний отклоняются со следующей ошибкой, несмотря на то, что сервер и браузер получают ответ 200 OK:

TypeError: Failed to fetch

Я в тупике ... Все мои поиски приводят к обсуждению ошибок CORS.Похоже, это не применимо, учитывая, что все это запросы одного и того же происхождения.Что вызывает выборку для выброса TypeError?

. На вкладке «Сеть» в Chrome DevTools я могу подтвердить, что запрос на выборку завершается ответом 200 OK и допустимым JSON.Я также могу подтвердить, что URL того же происхождения.Я также могу подтвердить, что нет предварительных запросов CORS.Я воспроизвел эту проблему на Chrome 66 и Safari 11.1.Однако мы получили поток сообщений об ошибках из различных версий Chrome и Safari, как для настольных, так и для мобильных устройств.


РЕДАКТИРОВАТЬ:

Это не похоже на дубликатсвязанного вопроса, поскольку мы не отправляем запросы CORS, не устанавливаем mode: "no-cors", а не устанавливаем заголовок Access-Control-Allow-Origin.

Кроме того, я перезапустил тесты с явно установленной опцией mode: 'same-origin'.Запросы являются (все еще) успешными;однако мы (все еще) получаем прерывистый TypeError.

...