Получить API с параметрами, не работающими на Edge 14

Я использую fetch в своем приложении для запросов и polyfill для браузеров, которые его не поддерживают. У меня никогда не было проблем (приложение работает на Edge 13, IE и т. Д.).

В частности, в Microsoft Edge 14 существует self.fetch, поэтому полифил не применяется. Если я вызываю fetch с одним параметром, например fetch('/api/users'), он работает, но вызываю его с двумя параметрами (мне нужно установить некоторые заголовки, метод и т. Д.)

fetch(request.url, {
    headers, 
    method: request.method || 'GET',
    body: request.body || null
})

это не работает. Он даже не звонит, не выдает ошибку, ничего. Уже час гуглил и пока не повезло. Любые идеи?

Очевидным было бы провести грязную проверку агента пользователя и переопределить встроенную функцию с помощью полифилла, но мне бы хотелось чего-то более «элегантного». Может я что-то не так делаю. Спасибо!


person Raul Rene    schedule 22.02.2017    source источник


Ответы (2)


Хорошо, поэтому я нашел ответ с помощью этого сообщения. По-видимому, происходил сбой при попытке отправить параметр body в запросе GET, даже если он был пустым или неопределенным.

Поэтому я сначала просто проверяю метод, и если это GET, я больше не добавляю тело. Это устранило мою проблему

person Raul Rene    schedule 22.02.2017

Любой другой, кто застрянет в этом:

Проверьте свою версию Edge, 17 не поддерживает обещания, обновите Windows с помощью обновления за октябрь 2018 г., которое включает Edge 18 и поддерживаются обещания, запросы на выборку будут работать.

https://www.microsoft.com/ja-jp/software-download/windows10

person Pixelomo    schedule 04.04.2019
comment
Что ж, проблема здесь не в этом. Проблема в том, что некоторые версии Edge (14-17) не позволяют устанавливать тело в качестве параметра. Это включает null. Если выставить undefined или вообще не работает. Кроме того, это случай производственного веб-сайта, который должен поддерживать все типы платформ и пользователей, вы не можете просто сказать пользователям обновить - person Raul Rene; 04.04.2019
comment
Я знаю, что это не лучшее решение, но официальный совет Microsoft - посоветовать пользователям выполнить обновление. Просто добавил этот ответ, так как он решил мою проблему и может помочь другим. - person Pixelomo; 05.04.2019