这段代码工作正常,并从本地.json文件中提醒data.person1.name。
$.getJSON("test.json", function(data) {
alert("success");
alert(data.person1.name);
});
test.json
{ "person1" : {
"name": "Morgan",
"age": "30",
"location": "Boston",
"desire": "Singing",
"fear": "Violence"
},
"person2": {
"name": "Joss",
"age": "42",
"location": "Boston",
"desire": "Hiking",
"fear": "Irrationality"
}
}
但是如果我尝试使用外部网址,就像这样的天气没有任何反应。(注意:我已经删除了API密钥,这是正确的而不是问题。)
$.getJSON("api.openweathermap.org/data/2.5/weather?q=London&appid=APIKEY", function(data) {
alert("success");
alert(data.main.temp);
});
来自天气API
{
"coord":{
"lon":-0.13,
"lat":51.51
},
"weather":[
{
"id":800,
"main":"Clear",
"description":"clear sky",
"icon":"01n"
}
],
"base":"stations",
"main":{
"temp":284.106,
"pressure":1035.85,
"humidity":67,
"temp_min":284.106,
"temp_max":284.106,
"sea_level":1043.66,
"grnd_level":1035.85
},
"wind":{
"speed":4.57,
"deg":97.0002
},
"clouds":{
"all":0
},
"dt":1475715629,
"sys":{
"message":0.0188,
"country":"GB",
"sunrise":1475734202,
"sunset":1475774762
},
"id":2643743,
"name":"London",
"cod":200
}
有人可以解释一下这是为什么吗?我是jquery的一个完整的菜鸟,有点熟悉js,提前谢谢。 :)
答案 0 :(得分:2)
在网址前添加http://。
$.getJSON("http://api.openweathermap.org/data/2.5/weather?q=London&appid=...", function(data){
console.log(data);
});
答案 1 :(得分:-1)
$.ajax({
url: 'http://api.openweathermap.org/data/2.5/weather?q=London&appid=.',
dataType: 'jsonp',
success: function(data){
alert(data.main.temp);
}
});
我四处搜索,发现这个替代品抓住了一个“jsonp”。 有效。不知道为什么atm,生病做一些挖掘和报告。