gpt4 book ai didi

google-chrome - XMLHttpRequest 使用用户名/密码发送 GET HTTP 请求

转载 作者:行者123 更新时间:2023-12-04 22:13:19 24 4
gpt4 key购买 nike

我开发了一个 Chrome 使用 XMLHttpRequest 将一个带有用户名/密码的 GET HTTP 请求发送到一个受基本身份验证保护的 URL,以便它之后可以“自动登录”到它(因为 Chrome 缓存了 HTTP 基本身份验证的凭据) .

这是我使用的代码:

  var xml = new XMLHttpRequest();
xml.open('GET',<url>,false,<username>,<password>)
xml.send('');

经过一些额外的研究,我发现它可能与 Chrome 19 不支持 username:pwd@url 语法用于对受基本身份验证的 URL 进行身份验证有关,因为当我发送 XMLHttpRequest 时,我在 Google Chrome 的 js 控制台中看到了这一点:

获取 http://user:pass@domain.com 401(未授权)

有谁知道这是一个错误还是 Chrome 停止支持此功能?

我的功能
function autoLogin(domain, user, password) {
var httpAuth;

if (window.XMLHttpRequest) {
httpAuth = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
}
else if (window.ActiveXObject) {
httpAuth = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
}
else {
alert("Seu browser não suporta autenticação xml. Favor autenticar no popup!");
}

var userName = domain + "\\" + user;

httpAuth.open("GET", "/_layouts/settings.aspx", false, userName, password);
httpAuth.onreadystatechange = function () {
if (httpAuth.status == 401) {
alert("Usuário e/ou senha inválidos.");
eraseCookie('AutoLoginCookieUserControl_User');
eraseCookie('AutoLoginCookieUserControl_Password');
}
else {
if ($(".pnlLogin").is(':visible')) {
$(".pnlLogin").hide();
$(".pnlUsuario").css("display", "block");
$(".avatar").css("display", "block");
var name = $().SPServices.SPGetCurrentUser({ fieldName: "Title" });
$(".loginNomeUsuario").html("Seja Bem Vindo(a) <br />" + name);
}
}
}
var userAgent = navigator.userAgent.toLowerCase();
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());

if ($.browser.chrome == true) {
httpAuth.setRequestHeader("Authorization", "Basic " + btoa(userName + ":" + password));
}
try {
httpAuth.send();
}
catch (err) {
console.log(err);
}
}

最佳答案

您需要手动向 XHR 请求添加 header 。

xml.setRequestHeader("授权", "基本"+ btoa(用户名 + ":"+ 密码))

演示在这里:http://jsbin.com/inuhiv/2 (注意,没有什么可认证的,但是查看 devtools 并查看请求具有 auth header )

enter image description here

关于google-chrome - XMLHttpRequest 使用用户名/密码发送 GET HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17601968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com