Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2018, 11:17
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Получить текст ответа сервера (fetch)
Всем здравствуйте!

Chrome Версия 62.0.3202.75 (Официальная сборка), (64 бит)
Браузер получает ответ и загружает данные (вкладка Network>Response).

Код переходит в секцию .catch
"use strict";

var url = 'https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22';
var myInit = { method: 'GET',
	           headers: myHeaders,
               cache: 'default'
};
var myHeaders = {
  "Content-Type": "application/json"
};


const getData = data => {
  return fetch(url, myInit
  )
  .then(function(response) {  
    return Promise.all([response.text(), response.status, response.body]);  
  })  
  .then(function(array) {  
    var text = array[0];
	})
  .catch(function(err) {
    console.log('Fetch Error :-S', err);
  });
};

getData();


Прошу подсказать - как забрать полученные данные в переменную?
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2018, 11:44
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,807

Что вы в строке 17 делаете?
Ответить с цитированием
  #3 (permalink)  
Старый 14.08.2018, 11:53
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Сообщение от Nexus Посмотреть сообщение
Что вы в строке 17 делаете?
Метод возвращает обещания.
По адресу (url) в настоящем коде выполнения секции .then не происходит на этапе исполнения.
Ответить с цитированием
  #4 (permalink)  
Старый 14.08.2018, 12:15
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Сообщение от Rise Посмотреть сообщение
CityZen,
А во вкладе Console ошибок нет? Как минимум должно быть отказано по CORS ибо не предоставляются заголовки доступа на том url.
Все верно. Ошибка есть. Только есть еще полученные данные.
Если есть данные, тогда руки чешутся их применить.
Или средствами JS никто не решал подобную задачу?
Ответить с цитированием
  #5 (permalink)  
Старый 14.08.2018, 12:15
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,807

CityZen, попробуйте так
"use strict";

var url = 'https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22';
var myInit = {
    method: 'GET',
    headers: myHeaders,
    cache: 'default'
};
var myHeaders = {
    "Content-Type": "application/json"
};


const getData = () => {
    return fetch(url, myInit).catch(function(err) {
        console.log('Fetch Error :-S', err);
    });
};

getData().then(console.log);
Ответить с цитированием
  #6 (permalink)  
Старый 14.08.2018, 12:31
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Сообщение от Nexus Посмотреть сообщение
CityZen, попробуйте так
"use strict";
....
getData().then(console.log);
Получаю ошибку загрузки данных .
Ответить с цитированием
  #7 (permalink)  
Старый 14.08.2018, 12:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,807

CityZen, вкладку "Console" откройте, там буковки красненькие будут, скопируйте их сюда.
Ответить с цитированием
  #8 (permalink)  
Старый 14.08.2018, 12:34
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Сообщение от Rise Посмотреть сообщение
Ну и что что есть, ошибка не для красоты.
Вместе с ошибкой клиент(в настоящем случае браузер) берет данные от сервера. Согласен с вами что ошибки для того чтобы с ними работать.
Вопрос только с какой стороны.
Ответить с цитированием
  #9 (permalink)  
Старый 14.08.2018, 12:38
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Сообщение от Nexus Посмотреть сообщение
CityZen, вкладку "Console" откройте, там буковки красненькие будут, скопируйте их сюда.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Видел. И видел что данные получены.
Эта ошибка ловится также в первичной версии кода.
Если нет сведений как обработать полученные данные под браузером (без прокси), тогда на этом спасибо.

Последний раз редактировалось CityZen, 14.08.2018 в 12:41.
Ответить с цитированием
  #10 (permalink)  
Старый 14.08.2018, 12:46
Интересующийся
Отправить личное сообщение для CityZen Посмотреть профиль Найти все сообщения от CityZen
 
Регистрация: 14.08.2018
Сообщений: 10

Сообщение от Rise Посмотреть сообщение
CityZen,
это сервер с примерами, реальный сервер там в адресе надо api вместо samples, и там будет ответ что не так с вашим запросом.
Подскажете на каком сервере (с аналогичным "Access-Control-Allow-Origin") API поможет ?
У меня не удалось средствами js выкурить текст из ответа.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раскрывающийся список с объемными текстами morzer Общие вопросы Javascript 4 11.07.2016 14:54
Резиновые дивы с прокруткой Java Script Mary-Jay Элементы интерфейса 10 24.07.2013 17:51
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42