【问题标题】:Missing ; before statement getJson issue失踪 ;在声明getJson问题之前
【发布时间】:2015-04-02 03:27:26
【问题描述】:

我有以下代码:

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}

我找不到错误。

【问题讨论】:

  • 当我将该 JSON 对象复制到 Firefox 控制台时,我只会收到该错误。如果我在对象文字周围加上括号(),应该没问题。
  • 对我来说它看起来是有效的 json。
  • 您的网址暗示使用 JSONP,而内容显然不是 JSONP 脚本。这样评估时会引发语法错误。

标签: javascript jquery ajax syntax getjson


【解决方案1】:

看起来所述资源期望回调参数名称为 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

【讨论】:

    【解决方案2】:

    尝试在 Chrome 的开发者控制台中运行代码确实会出错,尽管它会抱怨意外的冒号 : 而不是分号 ;。似乎 jQuery 期待 JSONP 作为回报。检查文档确认添加类似或类似 callback=? 的参数会提示 jQuery 将结果解释为 JSONP,但结果是普通的旧 JSON。

    删除jsoncallback=?

    另一方面,您的链接看起来有点奇怪,而且似乎还有一个额外的问号? 和一个额外的空格。您还应该删除多余的字符。通常和&符号&用于分隔请求参数。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多