您好我试图做简单的天气应用程序,但我无法从API获得请求。
Somone可以帮助我吗?
$(document).ready(function testCall(){
$.ajax({
url: `http://api.openweathermap.org/data/2.5/weather?`,
dataType: `JSON`,
id: `7531860`,
APPID: `8d3beea42a62c24610f3d57a8082a9c0`,
success: function(data) {
console.log("lol")
},
error: function(){
console.log("WHy?")
}
});
})
答案 0 :(得分:0)
好的,首先,错误回调函数接收您可以用来了解发生了什么的参数。使用稍微修改过的代码,我的状态代码为0。
error: function(xhr, exception){
console.log("WHy?")
console.log(xhr.status);
console.log(exception);
}
我不太熟悉使用jQuery的ajax,所以如果你想使用jQuery,也许有人可以帮助你。下面我提供了一种使用内置的Fetch API实现所需功能的方法。这是Fiddle。
function getWeatherData(Id, appId) {
return fetch(`https://api.openweathermap.org/data/2.5/weather?id=${Id}&APPID=${appId}`)
.then(res => res.json())
}
const YOUR_ID = null; // Replace Me
const YOUR_APP_ID = null; // Replace Me
getWeatherData(YOUR_ID, YOUR_APP_ID)
.then(weatherData => {
// Work with your data
console.log(weatherData);
});
包含您的API信息有助于解决此问题,但您现在应该重置它!
编辑:在使用fetch重写时,我弄清楚出了什么问题。该状态代码是由网址中的拼写错误引起的。您需要通过https而不是http请求。您还需要将查询参数添加到请求中,而不是添加到对象上。请参阅下文和fiddle。
$(document).ready(function testCall(){
$.ajax({
url: `https://api.openweathermap.org/data/2.5/weather?id=PUT_YOUR_ID_HERE&APPID=PUT_YOUR_APP_ID_HERE`,
dataType: `JSON`,
success: function(data) {
console.log(data);
},
error: function(xhr, exception){
console.log("WHy?")
console.log(xhr);
console.log(xhr.status);
console.log(exception);
}
});
});