Я пытаюсь получить данные из мета погоды API, но это не позволяет мне - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь получить данные из API meta meta.из-за проблем с CORS я использую этот прокси-сервер под названием «crossorigin.me».тем не менее, это не позволяет мне получить данные.Я даже включил «mode:« no-cors »после того, как многие предложили это сделать.

<!DOCTYPE html>
<html>
<head>
    <title> Fetch Promise </title>
</head>
<body>
<script>
    function getWeather(woeid){
    fetch(`https://crossorigin.me/https://www.metaweather.com/api/location/${woeid}/`,{mode: 'no-cors'})
//fetch always returns a promise
.then(data => {
    console.log(data)
    return data.json()
    // json also returns a promise so we handle that by chaining
})
.then(result => {
const today = result.consolidated_weather[0]
console.log(`temperature in ${result.title} stay between ${today.min_temp} and ${today.max_temp}`)
})
.catch(error => console.log(error)) 
}
getWeather(2487956)
</script>
</body>
</html

Ответы [ 2 ]

1 голос
/ 28 сентября 2019

Возможно, используемый вами обходной сервис CORS недоступен из-за большой нагрузки на трафик или по другим причинам.

К счастью, очень легко настроить собственный прокси-сервер с помощью heroku.

Следуйте инструкциям в первом ответе этой темы: cors-anywhere.herokuapp.com не работает (503).Что еще я могу попробовать?

Надеюсь, это поможет.

0 голосов
/ 28 сентября 2019

MetaWeather API не поддерживает CORS.Вам нужно будет запустить свое собственное серверное приложение в том же домене, что и ваш веб-интерфейс, чтобы выполнить запрос и получить ответ API, а также указать соответствующие заголовки: например, Access-Controll-Allow-Origin: *.Смотрите эту статью: https://jeremyliberman.com/2019/02/11/fetch-has-been-blocked-by-cors-policy.html

Посмотрите на Node.js и Express, чтобы начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...