0

我正在使用getJSON,但它没有按我预期的方式工作,甚至WebServicexml认为特别指定为ResponseFormat = ResponseFormat.JSON. 在互联网上阅读了一些帖子后,我发现问题getJSON不会设置contentTypeapplication/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:请不要告诉我我可以使用ajaxSetupetc. 并且还有其他方法可以做到,我知道,但让我感到困惑的是,我找不到jQuery.get定义,那么它是如何以及从哪里调用的?

4

2 回答 2

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方法。

于 2013-04-11T05:59:46.587 回答
1

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

特别是第 197-214 行。

他们穿过getpost到达jQuery.ajax()

于 2013-04-11T06:00:43.727 回答