我想用javascript授权用户。我是用ajax做的。 Ajax基本身份验证很好,成功功能很好,但在它之后我有重定向,浏览器询问用户登录和密码。我怎么解决呢?
$('#btnlogin').click(function(){
var username = $("input#userlogin").val();
var password = $("input#userpassword").val();
$.ajax
({
type: "GET",
url: "/cloud/",
headers: {
"Authorization": "Basic " + btoa(username + ":" + password)
},
success: function(){
console.log('ok');
setTimeout(function() { window.location = '/cloud/'; }, 2000);
},
error: function(){
alert('wrong password');
}
});
});
答案 0 :(得分:0)
我认为浏览器只会在提示用户自己的情况下缓存凭据。如果凭据是由Javascript发送的,则浏览器不会保存它们。因此,当用户正常访问页面时,浏览器将提示他们输入凭据,而不是通过AJAX访问它。
我已经做了一些搜索,据我所知,Javascript中没有办法将凭据保存到浏览器的缓存中。
您应该做的是在用户登录时设置会话变量。其他页面应该在需要HTTP身份验证之前检查会话变量。