我正在使用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);
}
这些方法之间的主要区别是什么?被认为比另一方更好或更有效?
答案 0 :(得分:0)
$ .getJSON是$ .ajax传递dataType'json'和方法'GET'的快捷方式。使用$ .ajax,您可以使用其他方法,如“POST”或“PUT”以及其他数据类型,如“xml”或“html”。
在你的第一个例子中,数据类型是'jsonp',它是另一个有点不同的...当你传递一个函数名X,并且响应是由这个函数名包裹的json ... X ({...})当您需要从另一个域调用web api时,它非常有用,因为ajax调用必须位于同一个域中,但<script>
标记可以具有指向另一个域的src属性。 / p>