0

我想将授权标头添加到登录请求中。我尝试用代码做到这一点:

function dblogin (credential){
            $.couch.login({
                name:credential.name, 
                password:credential.password,
                headers: {'Authorization': 'Basic ...'},
                success: function (data){console.log("loggato con successo!");},
                error: function(status) {console.log("login non riuscito!" + status);}
            });
        }

但我看到在 HTTP 请求标头中,字段 Authorization 不存在。为什么?

4

1 回答 1

2

jquery.couch.js 的源代码中,您会看到该login函数并未使用您发送的每个参数:

login: function(options) {
  options = options || {};
  $.ajax({
    type: "POST", url: this.urlPrefix + "/_session", dataType: "json",
    data: {name: options.name, password: options.password},
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Accept', 'application/json');
    },
    complete: function(req) {
      var resp = $.parseJSON(req.responseText);
      if (req.status == 200) {
        if (options.success) options.success(resp);
      } else if (options.error) {
        options.error(req.status, resp.error, resp.reason);
      } else {
        throw 'An error occurred logging in: ' + resp.reason;
      }
    }
  });

所以实际上没有办法向它发送自定义标题。

编辑:这实际上是一种耻辱,因为他们定义了自己的ajax函数包装器,允许标题自定义。但由于某种原因,他们不会在某些特定功能中使用它,包括login...

于 2013-11-08T15:32:15.113 回答