jQuery在哪里?

时间:2013-04-11 05:55:50

标签: jquery

我正在使用getJSON,但它没有按照预期的方式运行,WebService正在返回xml,甚至认为具体指定为ResponseFormat = ResponseFormat.JSON。在互联网上阅读了一些帖子后,我发现问题是getJSON不会将contentType设置为application/json; charset=utf8,而是让它成为默认值。我通过调用$.ajax并将contentType设置为application/json; charset=utf8来验证它。所以我想查看jQuery-1.9.1.js并了解getJSON是如何实现的。这是文件中的确切签名......

getJSON: function( url, data, callback ) {  // line 8107 as of 1.9.1.js
    return jQuery.get( url, data, callback, "json" );
}

所以,我进一步研究了jQuery.get是如何实现的。但令我惊讶的是,我找不到任何???我看了很多次,但文件中没有定义get来获取4个或更多参数?怎么会这样?如果未定义,get和扩展名getJSON(以及getScript)的调用方式如何?任何人都可以检查并验证这个吗?

ps:请不要告诉我我可以使用ajaxSetup等等,还有其他方法可以做到,我知道,但令我费解的是,我找不到jQuery.get定义,所以如何以及从何处调用它?

2 个答案:

答案 0 :(得分:2)

ajax.js文件的第197行是getpost函数的定义位置:

jQuery.each( [ "get", "post" ], function( i, method ) {
    jQuery[ method ] = function( url, data, callback, type ) {
        // shift arguments if data argument was omitted
        if ( jQuery.isFunction( data ) ) {
            type = type || callback;
            callback = data;
            data = undefined;
        }

        return jQuery.ajax({
            url: url,
            type: method,
            dataType: type,
            data: data,
            success: callback
        });
    };
});

正如您所看到的,他们只是简单地调用jQuery.ajax方法。

答案 1 :(得分:1)

查看:https://github.com/jquery/jquery/blob/master/src/ajax.js

具体是197-214行。

他们将getpost传递给jQuery.ajax()