我有一个Java应用程序,JSF使用javascript连接到需要基本身份验证的网站。
我想要帮助的事情与我在popupform中输入用户名和密码时完全相同。
我在这个主题上尝试了许多不同的方法,但没有一种方法有效。奇怪的是,ajax调用返回了一个respone,但无论如何我得到了windows安全弹出窗口。我需要缓存它吗? 例如,下面的两个代码我都无法工作。下面的一个使用base64
$.ajax(
{
'password' : password,
'username' : username,
'url' : url,
'type' : 'GET',
'success' : function(){ alert("success"); },
'error' : function(err){ alert('Bad Login Details' + err);},
}
);
$.ajax({
url : url,
method : 'GET',
beforeSend : function(req) {
req.setRequestHeader('Authorization', auth);
},
error : function(xhr, ajaxOptions, thrownError) {
alert('Invalid username or password. Please try again. thrownError:' + thrownError + 'xhr:' + xhr + 'ajaxOptions:'+ajaxOptions);
},
sucess: function(result) {
alert('done');
}
});
答案 0 :(得分:2)
答案 1 :(得分:2)
如果您可以控制服务器端代码,则可以滚动自己的Authenticate标头,以防止浏览器弹出标准的Basic Challenge。例如,如果您的标题是:
WWW-Authenticate: Basic realm="realm here"
然后浏览器会弹出挑战。但如果你的标题是:
WWW-Authenticate: my-basic realm="insert realm"
然后浏览器不会弹出401挑战。