我正在创建一个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.2
,setRequestHeader
正确地将标题名称和值对添加到缓存的标题列表中。
由于授权失败,AJAX调用会引发错误。 (ZGetcetc与我在成功的手动尝试中看到的相匹配)
答案 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));
},