0

beforeSend私はコールバック関数のいくつかの例を見てきました。これらの例では、入力パラメーターbeforeSend:function(req)またはを使用する場合がありますbeforeSend:function(xhr)

このパラメーターはXMLHTTPRequestjqueryリクエストのパラメーターだと思いますが、これらの例を試してみると、xhrまたはreqオブジェクトはであるように見えますnull

xhrjqueryオブジェクトの実行を呼び出す前に、パラメーターを作成して初期化する必要がありますか?

これが私が試しているクエリです:

function make_basic_auth(un, pss)
{
  var tok = un + ':' + pss;
  var hash = Base64.encode(tok);
  return "Basic " + hash;
}

$('#loginform').submit(function()
{
    $.ajax
    (
        {
            type: 'POST',
            url: 'my.ip.address',
            beforeSend: function(jqXHR, settings)
            {   
                var username = $('.username').val();
                var password = $('.passcode').val();
                var auth = make_basic_auth(username, password);

                jqXHR.setRequestHeader("Authorization",  auth);
                jqXHR.setRequestHeader('Content-Type', 'text/plain');
            },
            success: function (){
               alert("ok");
            },
            error: function (){
               alert("no");
            }
        }
    );
});
4

1 に答える 1

1

次のコードをチェックアウトします。

$.ajax({
  url: "google.com",
    beforeSend: function(jqXHR, settings) {
        jqXHR.error = function(){
            alert("failed");
        }
    }
})​

実例: http: //jsfiddle.net/kXerD/

ここでは、リクエストを送信する前に、このリクエストにエラーハンドラを追加すると言っています。JQueryは、このリクエストに関連するjqXHRのオブジェクトと設定を提供します。それらを初期化する必要はありません。

于 2012-10-04T22:05:01.653 に答える