0

次の呼び出しは、IE を除くすべてのブラウザーでうまく機能します。$.ajaxSetup認識されません。および関数はerror、呼び出しcompleteに直接追加しない限り呼び出されません$.ajax

理由はありますか?

function setupAjaxCalls() {
    $.ajaxSetup({
        type: 'GET',
        dataType: "jsonp",
        contentType: "application/json",
        data: {
            deviceIdentifier: deviceIdentifier,
            deviceType: deviceType,
            memberId: loggedInMemberId,
            authToken: authToken,
            cache: false,
            responseFormat: 1
        },
        error: function (x, e) {
            defaultError(x, e);
        },
        complete: function () {
            apiCallInProgress = 'false';
            //alert('complete!');
        }
    });
}

function logInForm(memLogin, memPassword, callback) {
    apiCallInProgress = 'true';

    $.ajax({
        type: 'POST',
        dataType: "json",
        url: baseApiUrl + '/MembershipService/AuthLoginSecure',
        data: {
            login: memLogin,
            password: memPassword,
            responseFormat: 0
        },
        success: function (data) {
            if (data.Success == false) {
                apiError(data);
            } else {
                loggedInMemberId = data.Member.Id;
                authToken = data.Token;

                if (typeof (callback) != "undefined" || callback) {
                    callback(data);
                }

            }
        }
    });
}
4

1 に答える 1

0

ドキュメントから直接:

http://api.jquery.com/jQuery.ajaxSetup/

Note: Global callback functions should be set with their respective global Ajax event
handler methods—.ajaxStart(), .ajaxStop(), .ajaxComplete(), .ajaxError(), .ajaxSuccess(),
.ajaxSend()—rather than within the options object for $.ajaxSetup().

エラーと完全なプロパティを独自のメソッドに移動する必要があります。:) または、それらを $.ajax メソッドに入れることもできます。お好みのコードパターンに最適なものは何でも!

于 2012-07-13T20:17:09.020 に答える