丢失的 ;在声明 getJson 问题之前
Missing ; before statement getJson issue
我有以下代码:
function getWeather() {
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35& lon=139?jsoncallback=?";
$.getJSON(url, function (data) {
console.log(data.id);
});
}
而且根据 Firefox 的说法,我在行 1:8
中收到了缺少分号的错误
{"coord":{"lon":139,"lat":35},"sys":{"message":0.0106,"country":"JP","sunrise":1427920171,"sunset":1427965544},"weather":[{"id":800,"main":"Clear","description":"Sky is Clear","icon":"01d"}],"base":"stations","main":{"temp":285.577,"temp_min":285.577,"temp_max":285.577,"pressure":1026.48,"sea_level":1034.31,"grnd_level":1026.48,"humidity":100},"wind":{"speed":5.56,"deg":57.001},"clouds":{"all":0},"dt":1427944893,"id":1851632,"name":"Shuzenji","cod":200}
我找不到错误。
看起来上述资源期望回调参数名称为 callback
而不是 jsonpcallback
function getWeather() {
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&callback=?";
$.getJSON(url, function (data) {
console.log(data);
});
}
演示:Fiddle
您还可以使用 CORS 支持
function getWeather() {
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139";
$.getJSON(url, function (data) {
console.log(data);
});
}
演示:Fiddle
尝试 运行 Chrome 的开发者控制台中的代码确实会出错,尽管它抱怨的是意外的冒号 :
而不是分号 ;
。 jQuery 似乎在 return 中期待 JSONP。检查文档确认添加类似或类似于 callback=?
的参数会提示 jQuery 将结果解释为 JSONP 但结果是普通的旧 JSON.
删除 jsoncallback=?
.
换句话说,您的 link 看起来有点奇怪,似乎还有一个额外的问号 ?
和一个额外的 space </code>。您还应该删除多余的字符。通常和符号 <code>&
用于分隔请求参数。
http://api.openweathermap.org/data/2.5/weather?lat=35&% lon=139?jsoncallback=?
^ ^
使用以下 URL 会产生您预期的结果
http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139
我有以下代码:
function getWeather() {
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35& lon=139?jsoncallback=?";
$.getJSON(url, function (data) {
console.log(data.id);
});
}
而且根据 Firefox 的说法,我在行 1:8
中收到了缺少分号的错误{"coord":{"lon":139,"lat":35},"sys":{"message":0.0106,"country":"JP","sunrise":1427920171,"sunset":1427965544},"weather":[{"id":800,"main":"Clear","description":"Sky is Clear","icon":"01d"}],"base":"stations","main":{"temp":285.577,"temp_min":285.577,"temp_max":285.577,"pressure":1026.48,"sea_level":1034.31,"grnd_level":1026.48,"humidity":100},"wind":{"speed":5.56,"deg":57.001},"clouds":{"all":0},"dt":1427944893,"id":1851632,"name":"Shuzenji","cod":200}
我找不到错误。
看起来上述资源期望回调参数名称为 callback
而不是 jsonpcallback
function getWeather() {
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&callback=?";
$.getJSON(url, function (data) {
console.log(data);
});
}
演示:Fiddle
您还可以使用 CORS 支持
function getWeather() {
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139";
$.getJSON(url, function (data) {
console.log(data);
});
}
演示:Fiddle
尝试 运行 Chrome 的开发者控制台中的代码确实会出错,尽管它抱怨的是意外的冒号 :
而不是分号 ;
。 jQuery 似乎在 return 中期待 JSONP。检查文档确认添加类似或类似于 callback=?
的参数会提示 jQuery 将结果解释为 JSONP 但结果是普通的旧 JSON.
删除 jsoncallback=?
.
换句话说,您的 link 看起来有点奇怪,似乎还有一个额外的问号 ?
和一个额外的 space </code>。您还应该删除多余的字符。通常和符号 <code>&
用于分隔请求参数。
http://api.openweathermap.org/data/2.5/weather?lat=35&% lon=139?jsoncallback=?
^ ^
使用以下 URL 会产生您预期的结果
http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139