何时在调用API时使用.ajax或.getJSON

时间:2016-07-23 16:34:43

标签: javascript json ajax openweathermap

我正在使用openweather API,在查看示例代码后,我有时会看到如下所示的API调用:

function getWeather(callback) {
    var weather = 'http://api.openweathermap.org/data/2.5/forecast?lat=51.5072&lon=0.1275&units=metric';
    $.ajax({
      dataType: "jsonp",
      url: weather,
      success: callback
    });
}

但偶尔我会看到使用此方法发出的请求:

function gettingJSON(){
document.write("jquery loaded");
$.getJSON("api.openweathermap.org/data/2.5/weather?q=London&APPID=ee6596241130f193adf1ba90e625cc10",function(json){
document.write(json);
}

这些方法之间的主要区别是什么?被认为比另一方更好或更有效?

1 个答案:

答案 0 :(得分:0)

$ .getJSON是$ .ajax传递dataType'json'和方法'GET'的快捷方式。使用$ .ajax,您可以使用其他方法,如“POST”或“PUT”以及其他数据类型,如“xml”或“html”。

在你的第一个例子中,数据类型是'jsonp',它是另一个有点不同的...当你传递一个函数名X,并且响应是由这个函数名包裹的json ... X ({...})当您需要从另一个域调用web api时,它非常有用,因为ajax调用必须位于同一个域中,但<script>标记可以具有指向另一个域的src属性。 / p>