0

我有一个处理摘要身份验证的自定义网络服务器。我有一个网络客户端,它连接到网络服务器并在 javascript 中执行摘要身份验证,即没有弹出窗口。

客户端

为避免此类弹出窗口(在 401 错误中总是如此),客户端请求带有自定义警告标头的数据

new XMLHttpRequest();
request.open('GET', urlToGet + "?" + Math.random(), false);
request.setRequestHeader("Warning","CustomRequest"); 

服务器端

每当网络服务器获得一个 CustomRequest 警告标头时,它都会回复一个自定义 HTTP 代码 (406) 和一个 auth 标头。

然后客户端解析服务器标头,创建散列的身份验证字符串,我可以识别。到目前为止,一切都很好(另请参阅我以前的问题herehere)。

现在我有了好的标题,我希望我的浏览器在我提出的每个请求中都包含它,它是 CSS

  background-image: url(IMAGE_URL);

或jQuery

 $('#theDiv').prepend('<img id="theImg" src=IMAGE_URL />')

或 jquery / AJAX

 $.ajax({
            url: SOME_URL,
            // ...
        });

后者可能是最简单的,因为我可以使用

beforeSend : function(req) {req.setRequestHeader('Authorization',authHeader);}

并且我知道 authHeader。

是否可以使用 jquery/javascript 告诉浏览器“从现在开始的所有请求都应该有这个授权头?

另一种方法是在网络服务器端实现会话,这是我很乐意避免的。

4

0 回答 0