我目前正在尝试从
获取数据openweathermap.org
城市ID 。但我无法得到任何东西。我想我可能做错了,因为我只是初学者并且第一次尝试ajax。
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Your Weather</title>
<meta charset="utf-8">
<link rel="stylesheet" href="">
</head>
<body>
<div>
<h1>The Weather</h1>
<div>
<p>
<span id="show-weather"></span>
</p>
</div>
</div>
<script src="jquery-3.1.1.js"></script>
<script src="custom.js"></script>
</body>
</html>
JS:
$(document).ready(function(){
function getCurrentWeather() {
$.ajax({
url: 'http://samples.openweathermap.org/data/2.5/weather/' ,
jsonp: 'jsonp',
data: {
id: '2172797',
appid: 'b1b15e88fa797225412429c1c50c122a1'
},
type: "GET",
dataType: "jsonp"
})
$done(function(json) {
$('#show-weather').text(json.coord.lon);
})
}
});
答案 0 :(得分:2)
在我看来,使用JSONP是一种黑客行为。
使用下面的综合方法,您可以轻松使用Open Weather Map API:
$(document).ready(function() {
$.ajax({
type: 'GET',
data: {
id: '2172797',
appid: 'b1b15e88fa797225412429c1c50c122a1'
},
url: 'https://samples.openweathermap.org/data/2.5/weather/',
xhrFields: {
withCredentials: false
},
headers: {},
success: function(data) {
console.log('success');
console.log(data);
},
error: function(data) {
console.log('error');
console.log(data);
},
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:-1)
您要查找的关键字是“异步编程”:jQuery.ajax()
函数在服务器的答案到达之前完成执行。因此,您必须事先告诉该函数在稍后的某个时间点应该发生什么。
您作为参数提供的属性对象具有一个特殊键:success
。它的值必须是服务器应答时执行的函数。
$(document).ready(function(){
function getCurrentWeather() {
$.ajax({
url: 'http://samples.openweathermap.org/data/2.5/weather/' ,
jsonp: 'jsonp',
data: {
id: '2172797',
appid: 'b1b15e88fa797225412429c1c50c122a1'
},
type: "GET",
dataType: "jsonp",
}).done(function(json) {
$('#show-weather').text(json.coord.lon);
};
}
});