基本的getJSON问题-似乎总是忽略第二个参数

时间:2019-07-15 17:17:36

标签: javascript jquery getjson

我对Javascript,Jquery及其两者之间的一切都很陌生。我一直在尝试了解getJSON函数-文档说:

jQuery.getJSON( url [, data ] [, success ] )
  • url:包含请求发送到的URL的字符串。
  • data:随请求发送到服务器的普通对象或字符串。
  • success:如果请求成功,则执行一个回调函数。

一个典型的例子:

$.getJSON( "ajax/test.json", function( data ) {
  var items = [];
  $.each( data, function( key, val ) {
    items.push( "<li id='" + key + "'>" + val + "</li>" );
  });

getJSON调用中的第二个参数在哪里?

似乎function(data)定义了一个函数,该函数在请求成功后被调用,这意味着它应该是第三个参数。

但是它作为第二个参数传递,紧随"ajax/test.json"参数之后。

getJSON是否假设只有2个参数,第二个是SUCCESS参数?

2 个答案:

答案 0 :(得分:7)

文档中的[]表示参数为可选

您的示例中省略了data参数。因此,第二个参数是success函数。

getJSON函数测试第二个参数的类型,确定它是一个函数,并将其用作success函数。

答案 1 :(得分:1)

SELECT SUM(CASE WHEN a.DocType = "GM360.User" THEN 1 ELSE 0 END) AS totalItemsCount, ARRAY_AGG(CASE WHEN a.DocType = "Moderator.User" THEN a ELSE MISSING END) AS items FROM table AS a WHERE a.environment = "test" AND a.DocType IN ["Moderator.User", "GM360.User"]; 的内部外观如下:

getJSON

这是JQuery包装getJSON: function( url, data, callback ) { return jQuery.get( url, data, callback, "json" ); }, GET请求的方式:

POST

上述示例来自github上的jquery sources