在JQuery ajax中使用基本授权

时间:2013-10-24 13:17:43

标签: javascript jquery ajax

我正在创建一个ajax调用,如下所示:

beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", make_base_auth(username, password)); 
},

生成的HTTP请求标头包含

Access-Control-Request-Headers: authorization

当我直接从浏览器发出相同的请求时,请求标头正确包含

Authorization: Basic ZG<etc>

查看JQuery例程jquery-1.20.2setRequestHeader正确地将标题名称和值对添加到缓存的标题列表中。

由于授权失败,AJAX调用会引发错误。 (ZGetcetc与我在成功的手动尝试中看到的相匹配)

1 个答案:

答案 0 :(得分:2)

我不确定这是否适合您;升级你的jQuery。

Newever jQuery能够将基本身份验证用户名和密码作为ajax调用的一部分传递,例如

$.ajax
({
  type: "GET",
  url: "index.php",
  dataType: 'json',
  async: false,
  username: "YOUR-USERNAME-HERE",
  password: "YOUR-PASSWORD-HERE",
  data: '{ "DATA-HERE" }',
  success: function (data) {
     // handle success data
  }
});

Src:http://api.jquery.com/jQuery.ajax/


另一种选择:

beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Basic "+ Base64.encode(username +':'+ password));
},