Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fetch, fetch json await 
:(
    Опции темы
YahоО
Дата 24.1.2020, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 11.6.2015

Репутация: 1
Всего: 1



Переписываю для себя строчки примеров из developer.mozilla и learn.javascript и результат не обнадеживает :(
Это моя попытка получить данные со стороннего сайта:
Код

async function f(){
 let res = await fetch( 'http://another_site.com', {
    method: 'GET',
    mode: 'no-cors'      
 }); 
 if(res.ok) { 
  let json = await res.json();
  document.body.innerHTML+="<br>"+JSON.stringify(json)+"<br>";
 } else {alert("Error: " + res.status);}
};
f();

В ответах в Chrome видны два запроса к "another_site.com", где
1) для первого запроса: 
 Request Method: GET 
 Status Code: 301 Moved Permanently (from disk cache)
 т.е. запрос ушел и ответ на него не получен еще,
2) а для второго запроса: 
 Request Method: GET 
 Status Code: 200 OK
 т.е. ответ пришел с сервера, но прочитать его в скрипте уже некому, как то так понимаю,
потому что ответ проверяется всего один раз, и как раз для того ответа где 301 и res="".
Данные пришедшие с сервера по второму запросу такие же, как если просто в адресной строке браузера написать  http://another_site.com, т.е. текст то правильный во 2 ответе получаемого с сервера.
Ответ приходит, на как его взять? И почему из браузера отправляется два запроса на сторонний сервер, если функция выполняется один раз?  (два запроса показывает Chrome)
PM MAIL   Вверх
_zorn_
Дата 25.1.2020, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 1
Всего: 12



Status Code: 301 Moved Permanently (from disk cache)
В заголове Location новое местоположение. Соответственно делаем второй запрос.

Наверное редирект с http на https

Это сообщение отредактировал(а) _zorn_ - 25.1.2020, 11:36
PM MAIL   Вверх
YahоО
Дата 25.1.2020, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 11.6.2015

Репутация: 1
Всего: 1



Нет, адрес без s :  
http://...
редиректа как бы и нету, скорее всего это Network в Chrome это так отображает, т.к. запрос асинхронный, и есть await, все по отдельности smile

И раньше так бы все и работало, пока не появился cors, 
т.е. сегодняшний mode: 'no-cors' не спасает ситуацию, он не разрешает получать string из даже пришедшего с сервера в браузер ответа на запрос.
Если так, то почему developer.mozilla и learn.javascript не напишут на своих сайтах об этом, т.е. что 'no-cors' сегодня это туфта?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1008 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.