Je suis dans une extension de Google Chrome avec des permissions pour "*://*/*"
et j'essaie de passer de XMLHttpRequest à l'option API de récupération .
L'extension stocke les données de connexion saisies par l'utilisateur, qui étaient auparavant placées directement dans l'appel open() du XHR pour HTTP Auth, mais qui, dans le cadre de Fetch, ne peuvent plus être utilisées directement comme paramètre. Pour HTTP Basic Auth, contourner cette limitation est trivial, car vous pouvez définir manuellement un en-tête Authorization :
fetch(url, {
headers: new Headers({ 'Authorization': 'Basic ' + btoa(login + ':' + pass) })
} });
Authentification HTTP Digest nécessite toutefois plus d'interactivité ; vous devez lire les paramètres que le serveur vous envoie avec sa réponse 401 pour élaborer un jeton d'autorisation valide. J'ai essayé de lire le WWW-Authenticate
avec cet extrait de texte :
fetch(url).then(function(resp) {
resp.headers.forEach(function(val, key) { console.log(key + ' -> ' + val); });
}
Mais tout ce que j'obtiens est cette sortie :
content-type -> text/html; charset=iso-8859-1
Ce qui en soi est correct, mais il manque encore environ 6 autres champs selon les outils de développement de Chrome. Si j'utilise resp.headers.get("WWW-Authenticate")
(ou tout autre champ d'ailleurs), j'obtiens seulement null
.
Est-il possible d'accéder à ces autres champs en utilisant l'API Fetch ?