0

我已经看到了一些beforeSend回调函数的例子。这些示例有时使用输入参数:beforeSend:function(req)beforeSend:function(xhr)

我想这个参数是XMLHTTPRequestjquery 请求的,但是当我尝试这些示例时,似乎xhr或者req对象是null.

xhr在调用jquery对象的执行之前是否需要创建参数并初始化?

这是我正在尝试的查询:

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 回答