Выборка: статус 302 в Edge 17 - PullRequest
0 голосов
/ 27 августа 2018

Я использую js fetch API для получения данных из JSON. Он работает нормально (даже в IE 11), за исключением того, что в Edge 17 я получаю 302, заголовок ответа:

  • Длина содержимого: 0
  • Тип контента: текстовый / простой; кодировка = UTF-8
  • Расположение: http://local.mysite.com/xxx

Мой локальный веб-сайт находится на Mac, я использую BrowserSync, чтобы сделать его доступным через 192.168.100.X: 3000 Затем я обновил файл хостов своего ПК следующим образом:

192.168.100.X  http://local.mysite.com

Вот мой вызов вызова:

   fetch('/fr/fil-actualites-json', { mode: 'cors' })
      .then(
        function(response) {
          console.log('code :' +response.status);
          if (response.status !== 200) {
            console.log('Looks like there was a problem. Status Code: ' +
              response.status);
            return;
          }

          // Examine the text in the response
          response.json().then(function(data) {
            // do some stuff
          });
        }
      )
      .catch(function(err) {
        console.log('Fetch Error :-S', err);
      });

Спасибо за помощь;)

1 Ответ

0 голосов
/ 28 августа 2018

Safari выдавал эту ошибку:

unhandled promise rejection syntaxerror the string did not match the expected pattern

Я нашел ответ :

Значением по умолчанию для учетных данных является «тот же источник».

По умолчанию для учетных данных не всегда было то же самое. В следующих версиях браузеров реализована более старая версия получить спецификацию, где значением по умолчанию было «пропустить»:

Firefox 39-60 Chrome 42-67 Safari 10.1-11.1.2 Если вы нацелены на эти браузеры, желательно всегда указывать учетные данные: «тот же источник» явно со всеми запросами на выборку вместо того, чтобы полагаться на значение по умолчанию:

fetch('/users', {
  credentials: 'same-origin'
})
...