为什么在我的ajax基本身份验证之后,浏览器需要用户输入密码?

时间:2015-12-19 16:10:07

标签: jquery ajax authentication

我想用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');
      }
    });

});

1 个答案:

答案 0 :(得分:0)

我认为浏览器只会在提示用户自己的情况下缓存凭据。如果凭据是由Javascript发送的,则浏览器不会保存它们。因此,当用户正常访问页面时,浏览器将提示他们输入凭据,而不是通过AJAX访问它。

我已经做了一些搜索,据我所知,Javascript中没有办法将凭据保存到浏览器的缓存中。

您应该做的是在用户登录时设置会话变量。其他页面应该在需要HTTP身份验证之前检查会话变量。