我使用jquery。为每个请求添加标题并重定向
当用户登录时,我想在头部有授权信息。
时好像我们做一个重定向喜欢和大家做一个Ajax调用后,头不存在了
的原因吗?
我的代码
$('#loginform').submit(function(event) {
event.preventDefault();
var header = btoa($('#username').val() + ":" + $('#password').val());
$.ajaxSetup({
headers: {
"Authorization": "Basic " + header
}
});
$.ajax({
timeout: 1000, //check if really needed
type: 'get',
url: '/rest/members/1',
headers: {
"Authorization": "Basic " + header
}
}).done(function(data, textStatus, jqXHR) {
$("#error-login-form").addClass("hidden");
var deferredUsername = getNameByUsername();
$.when(deferredUsername).then(function() {
window.location = "main.html";
});
}).fail(function(jqXHR, textStatus) {
if (jqXHR.status == 401) {
$("#error-login-form").removeClass("hidden");
}
});
});
你就错了,你不把用户名和密码在头,并检查它在每次请求时,都会检查一次*,然后使用带有随机ID或类似cookie的cookie来跟踪用户。 – adeneo
看起来好像不那么糟糕https://zinoui.com/blog/ajax-basic-authentication –
您在注释中发布的示例使用了[使用PHP进行HTTP身份验证](http://php.net/manual/en/features。 http-auth.php)与登录页面不同,登录页面将登录信息发送到登录脚本,该登录脚本将设置cookie(如@ adeneo所述)或验证成功时的会话变量。目前还不清楚你在这里真正需要什么。但是,当然,您在问题中发布的脚本无法成功。 –