Wczytywanie pogody z api.weatherapi.com

0

Hej

Mam problem z pobieraniem danych API za pomocą JS

async function fetchWeather() {
    const res = await fetch('http://api.weatherapi.com/v1/current.json?key=d0ffc1b007aa4fa694294339221912&q=Lublin&aqi=no', requestOptions);
    const data = await res.json();
    console.log(data)
    return await data.location.name;
}

console.log(fetchWeather())

fetchWeather().then(temp => {
    document.querySelector('#weather-wrapper').innerText = temp;
}, console.error);

Mam taki bład

SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data 

Nie rozumiem tego przecież to jest JSON, ma ktoś jakiś pomysł?

2
LynxBings napisał(a):
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data 

Nie rozumiem tego przecież to jest JSON, ma ktoś jakiś pomysł?

Nie widocznie nie dostajesz poprawnego JSON'a.

Zamiast res.json() spróbuj wypisać res.text() i zobacz co dokladnie tam siedzi.

Odpaliłem ten kod u siebie i dostałem błąd z CORS'ami. Co masz w requestOptions?

0

@Riddle:

const requestOptions = {
    method: 'GET',
    mode: 'no-cors',
    crossDomain:true,
}
1

Wklej URL endpointa tu i zobacz co pokazuje.
https://jsonformatter.curiousconcept.com/#

0

Pokazuje to

Screenshot 2022-12-20 at 11.08.24.png

0
LynxBings napisał(a):
const requestOptions = {
    method: 'GET',
    mode: 'no-cors',
    crossDomain:true,
}

Z tego co widzę, to dostajesz tzw. "opaque response", bo używasz no-cors:

0

Hmmm no ale z jednej strony no-cors działa bo przepuszcza, a bez tego blokuje CORS Origin, chyba że da się jakoś inaczej ominąć blokowanie CORS'a

1 użytkowników online, w tym zalogowanych: 0, gości: 1