Javascript 当JQuery使用$.ajax加载内容时,避免出现登录弹出窗口

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

我有一个index.html,它使用3个不同的
$加载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");
});