失踪 ;在声明getJson问题之前

问题描述 投票:0回答:2

我有以下代码:

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}

我找不到错误。

javascript jquery ajax syntax getjson
2个回答
0
投票

看起来所说的资源期望回调参数名称为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);
    });
}

但是:ぁzxswい

您也可以使用CORS支持

Fiddle

但是:ぁzxswい


0
投票

尝试在Chrome的开发者控制台中运行代码确实会出错,尽管它抱怨意外的冒号function getWeather() { var url = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139"; $.getJSON(url, function (data) { console.log(data); }); } 而不是分号Fiddle。似乎jQuery期待JSONP作为回报。检查文档确认添加与:类似或类似的参数会提示jQuery将结果解释为JSONP,但结果是普通的旧JSON。

删除;

换句话说,你的链接看起来有点奇怪,似乎有一个额外的问号callback=?和额外的空间jsoncallback=?。您还应该删除多余的字符。通常,&符号?用于分隔请求参数。

使用以下URL生成您期望的结果

&
© www.soinside.com 2019 - 2024. All rights reserved.