@wug1
Новичок

Как получить данные с Яндекс Погоды?

ДВС. Не могу получить данные о погоде с Яндекс Погоды.
Код:
const key = '04aa3404-32a8-4baf-a280-db8a58bb908a';
const url = 'https://api.weather.yandex.ru/v2/informers?lat=55....';
//сслыку взял с примера
fetch(url,{
headers:{
'X-Yandex-API-Key': key
}
})
.then(resp => resp.json())
.then(data => console.log(data));
Ошибка:
5faf73f08ad95772011178.jpeg
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
@zkrvndm
Боты, парсеры, расширения
Проверил, действительно не работает:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.weather.yandex.ru/v2/informers?lat=55.75396&lon=37.620393');
xhr.setRequestHeader('X-Yandex-API-Key', '04aa3404-32a8-4baf-a280-db8a58bb908a');

xhr.onreadystatechange = function() {
	if (xhr.readyState === XMLHttpRequest.DONE) {
		if (xhr.status === 200) {
			var obj = JSON.parse(xhr.responseText);
			console.log('Успех:');
			console.dir(obj);
		}
		else {
			console.log('Ошибка:');
			console.dir(xhr);
		}
	}
}

xhr.send();

Происходит это из-за отсутствия заголовка Access-Control-Allow-Origin на стороне Яндекса. Вам необходимо связаться с технической поддержкой Яндекса и уточнить почему отсутствует этот заголовок - возможно они просто недоглядели и это ошибка с их стороны, а возможно так и заудмано, что с фронта нельзя запросить погоду. В последнем случае, вам нужно проксировать запрос через свой сервер используя либо CURL либо file_get_contents()

Если не знаете, что именно писать в Яндекс, просто дайте им ссылку на мой ответ, их спецы поймут о чем речь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы