2017-06-23 3 views
16

Lorsque j'exécute le JavasScript suivant, je peux me connecter avec succès mais sans accéder aux modules. Comment puis-je passer l'authentification à eux?Javascript Les modules ES6 ne transmettent pas l'authentification de base .htaccess

Exemple de code

<DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
    <script type="module"> 
     import * as mymodule from "./js/mymodule.js"; 
     mymodule.runme(); 
    </script> 
</body> 
</html> 

Ouverture cela avec un .htaccess avec des résultats d'authentification de base dans GET [...]mymodule.js [HTTP/1.1 401 Authorization Required 1ms] sur Firefox 54 (dom.moduleScripts.enabled, cela fonctionne sans .htaccess).

.htaccess

AuthType Basic 
AuthName "Internal Area" 
AuthUserFile /opt/.../.htpasswd 
Require valid-user 

Répondre

3

Il semble que le HTML est mis en cache par Firefox et vous ne sont pas authentifiées au serveur.

Vous pouvez essayer ce qui suit:


Empêcher la mise en cache de fichiers html. Ajouter à .htaccess:

<filesMatch "\.(html)$"> 
    FileETag None 
    <ifModule mod_headers.c> 
    Header unset ETag 
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
    Header set Pragma "no-cache" 
    Header set Expires "Sat, 01 Jan 2000 00:00:00 GMT" 
    </ifModule> 
</filesMatch> 

utiliser l'extension PHP pour la place de HTML


+0

Malheureusement, ni le changement de .htaccess ni renommer 'index.html' en' index.php' a résolu le problème. –

+0

Cela a-t-il fonctionné pour vous? –

0

Vous pouvez essayer ce qui suit:

<script type="module" crossorigin src="./js/mymodule.js"></script> 
<script type="module"> 
    import * as mymodule from "./js/mymodule.js"; 
    mymodule.runme(); 
</script>