0

を使用していましたがgetJSON、期待どおりに動作しませんでした。インターネット上のいくつかの投稿を読んだ後、問題がに設定されず、デフォルトになることがわかりました。を呼び出してに設定することで確認しました。だから私は調べて、どのように実装されているかを調べます。ファイルからの正確な署名は次のとおりです...WebServicexmlResponseFormat = ResponseFormat.JSONgetJSONcontentTypeapplication/json; charset=utf8$.ajaxcontentTypeapplication/json; charset=utf8jQuery-1.9.1.jsgetJSON

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定義が見つからなかったので、どのように、どこから呼び出されるのでしょうか?

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 行目です。

彼らは通過getpostjQuery.ajax()

于 2013-04-11T06:00:43.727 に答える