Я пытаюсь получить данные о высоте с api.opentopodata.org, но у меня есть некоторые проблемы: вот мой код
let dataSEND = {
"locations":
[
{
"latitude": lat,
"longitude": lon
}
]
};
const elev_response = await fetch('https://api.opentopodata.org/v1/gebco2020',{
method: 'POST',
headers:{
'content-type': 'application/json'
},
body: JSON.stringify(dataSEND),
});
И я получаю эту ошибку
Доступ к выборке на «https://api.opentopodata.org/v1/gebco2020» из источника «null» заблокирован политикой CORS: ответ на предварительный запрос не проходит проверку контроля доступа: нет «Access-Control-Allow». Заголовок -Origin присутствует на запрошенном ресурсе. Если непрозрачный ответ соответствует вашим потребностям, установите для режима запроса значение «no-cors», чтобы получить ресурс с отключенным CORS.
Итак, отключение CORS
const elev_response = await fetch('https://api.opentopodata.org/v1/gebco2020',{
method: 'POST',
headers:{
'content-type': 'application/json'
},
body: JSON.stringify(dataSEND),
mode: 'no-cors'
});
Я получаю другую ошибку Не удалось загрузить ресурс: сервер ответил со статусом 400 ()
"error": "Местоположения не указаны. Добавьте местоположения в строку запроса: ?locations=lat1,lon1|lat2,lon2.", "status": "INVALID_REQUEST" }
Так как часть тела не была отправлена
API как curl работает хорошо https://api.opentopodata.org/v1/gebco2020?locations=10, 10а> я получил
{
"results": [
{
"dataset": "gebco2020",
"elevation": 515,
"location": {
"lat": 10,
"lng": 10
}
}
],
"status": "OK"
}
Немного помощи, пожалуйста :)
1 ответ
Используя документацию, я проверил запрос, это GET, используя параметры запроса.
https://www.opentopodata.org/datasets/gebco2020/
Тогда вам нужно сделать что-то вроде этого:
await fetch('https://api.opentopodata.org/v1/gebco2020?locations=37.6535,-119.4105').then((response) => response.json()).then((data) => console.log(data))
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
file:///
, поэтому запросы на перекрестное происхождение не будут работать