【发布时间】:2016-03-23 09:24:48
【问题描述】:
我将制作一个使用 openweathermap api 显示当地天气的网络应用程序。 当我单击按钮时,会调用一个 IP API 来获取我的位置坐标(经度和纬度)。然后将这些信息与 API 密钥(我在网站 openweathermap.org 中注册)一起使用,以创建 URL 以根据 APIdocs 调用天气信息,然后使用从服务器获取的数据更改 HTML 元素。我这样做on codepen。我试着做最简单的一个,但它不起作用。
<h1>weather forcast</h1>
<button id="btn">view</button>
<p id ="test">change me</p>
<p id ="place">place</p>
<p id ="temp">temperature</p>
<p id ="description">description</p>
var getLocation = function(data) {
var lat = data.lat;
var lon = data.lon;
var apiKey = "[APIKEY]";
};
var url = 'http://api.openweathermap.org/data/2.5/weather?' + 'lat=' + lat + '&lon=' + lon + '&appid=' + apiKey;
//call back function to extract weather info.
var getWeather = function(data) {
var temp = data.main.temp;
var description = data.weather[0].description;
var place = data.name;
};
$(document).ready(function() {
$("#btn").click(function() {
$.getJSON('http://ip-api.com/json', getLocation, 'jsonp')
$.getJSON(url, getWeather, 'jsonp');
$("#test").text("I AM CHANGED. THANKS!")
$("#temp").text(temp)
$("#description").text(description)
$("#place").text(place)
})
})
【问题讨论】:
-
你不能在JS中使用API KEY。这仅适用于服务器端
-
在 Firefox 等浏览器中,代码将无法正常工作,因为来自其他站点的 URL 被 AJAX 阻止
-
@devaldcool:不能在 JS 中使用 API KEY,我在这里使用它并且它工作。你到底是什么意思?
-
API KEY 是一个密钥。把它当作你的密码。明白了吗?
标签: javascript jquery api