Javascript 对天气API的AJAX调用不起作用
我编写了一个ajax GET来检索天气信息,但我一直收到一个错误。这里的问题是什么Javascript 对天气API的AJAX调用不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我编写了一个ajax GET来检索天气信息,但我一直收到一个错误。这里的问题是什么 函数获取温度详细信息(经度、纬度){ $.ajax({ url:“api.openweathermap.org/data/2.5/weather”, 键入:“获取”, 数据类型:“JSON”, 数据:{ 纬度, 朗:经度, 附件:“c659eb709194683af915fba5e270c580” }, 成功:功能(数据){ 警报(数据); }, 错误:函数(数据、文本状态、错误抛出){ //做点什么来处理错误
函数获取温度详细信息(经度、纬度){
$.ajax({
url:“api.openweathermap.org/data/2.5/weather”,
键入:“获取”,
数据类型:“JSON”,
数据:{
纬度,
朗:经度,
附件:“c659eb709194683af915fba5e270c580”
},
成功:功能(数据){
警报(数据);
},
错误:函数(数据、文本状态、错误抛出){
//做点什么来处理错误
警报(文本状态);
}
});
}
获取温度详细信息(35149)代码>
1-
将http://
添加到URL。“http://api.openweathermap.org/data/2.5/weather“
否则您将请求http://yourserver.com/some-uri/api.openweathermap.org/data/2.5/weather
这显然不是开放的wheather地图API
2-
您发送的经度值无效(根据的有效值),因此请交换参数定义或交换值。我交换了参数定义,因为您通常使用lat/lng而不是lng/lat
以下是一个工作示例:
函数getTemperatureDetails(纬度、经度){//我把lat放在第一位
$.ajax({
//http://added
url:“http://api.openweathermap.org/data/2.5/weather",
键入:“获取”,
数据类型:“JSON”,
数据:{
纬度,
朗:经度,
附件:“b1b15e88fa797225412429c1c50c122a1”
},
成功:功能(数据){
控制台日志(数据);
},
错误:函数(数据、文本状态、错误抛出){
//做点什么来处理错误
console.log(textStatus);
}
});
}
获取温度详细信息(35149)代码>
这似乎是一个跨来源的问题。您需要http://api.openweathermap.org/data/2.5/weather
-因为按照原样,请求正在查找与当前页面相关的/api.openweathermap.org/data/2.5/weather
-注意,如果您的页面是https
,您将一点运气都没有,因为openweathermap不做https
@DanPhilip-不,openweathermap允许CORSOK…很高兴知道!这是一个CORS问题,请安装nginx并配置它之后,我会工作。您还有另一个临时解决方案来检查安装chrome扩展“Allow Control Allow Origin”。为什么正式变量的顺序很重要?顺序不重要,但他似乎在发送纬度值中的经度值,这就是为什么我要这么做。@Roamer-1888请求使用纬度=149和经度=35打开WatherMap抛出了一个错误,而相反的则没有。好,现在有意义了。忽略我。@Roamer-1888我忽略了你,但在回答中添加了一个原因:)