Javascript 当JQuery使用$.ajax加载内容时,避免出现登录弹出窗口
我有一个index.html,它使用3个不同的Javascript 当JQuery使用$.ajax加载内容时,避免出现登录弹出窗口,javascript,jquery,html,ajax,http-authentication,Javascript,Jquery,Html,Ajax,Http Authentication,我有一个index.html,它使用3个不同的$加载3块内容。加载(…)查询。 当我使用基本http身份验证时,会请求4次登录和通过。页面加载时为1,每个内容为1 如何保持登录,而不将其传递到$.load url?(出于安全目的) $(文档).ready(函数(){ $(“#标题”).load(“?cmd=header”); $(“#maindiv”).load(“?cmd=viewconfig”); $(“#页脚”).load(“?cmd=footer”); }); 您应该修改对401 ht
$加载3块内容。加载(…)
查询。
当我使用基本http身份验证时,会请求4次登录和通过。页面加载时为1,每个内容为1
如何保持登录,而不将其传递到$.load url?
(出于安全目的)
$(文档).ready(函数(){
$(“#标题”).load(“?cmd=header”);
$(“#maindiv”).load(“?cmd=viewconfig”);
$(“#页脚”).load(“?cmd=footer”);
});
您应该修改对401 http状态码的响应,而不是对授权http头的响应。然后,您可以捕获这些响应并显示自己的登录对话框弹出窗口
在我的示例中,将检查401代码的所有JQuery Ajax调用结果状态,第一次出现时将显示以下对话框:
var loginFormShown = false;
$.ajaxSetup({
statusCode: {
401: function(xhr) {
if(!loginFormShown) {
console.log('Show login form popup', xhr.responseText);
loginFormShown = true;
}
}
}
});
$(document).ready(function() {
$("#header").load("?cmd=header");
$("#maindiv").load("?cmd=viewconfig");
$("#footer").load("?cmd=footer");
});
你说的HTML身份验证是什么意思?我的错,我指的是基本的http身份验证。我会解决它。客户端无法控制所述弹出窗口。javascript无法停止。请使用更高级的授权系统。注意,还有一些全局ajax方法允许为所有请求设置请求头
var loginFormShown = false;
$.ajaxSetup({
statusCode: {
401: function(xhr) {
if(!loginFormShown) {
console.log('Show login form popup', xhr.responseText);
loginFormShown = true;
}
}
}
});
$(document).ready(function() {
$("#header").load("?cmd=header");
$("#maindiv").load("?cmd=viewconfig");
$("#footer").load("?cmd=footer");
});