2017-06-23 5 views
16

Wenn ich die folgenden JavasScript ausführen, kann ich mich erfolgreich anmelden, aber nicht auf die Module zugreifen. Wie kann ich die Authentifizierung an sie weitergeben?Javascript ES6-Module nicht weitergeben. HTAccess-Basisauthentifizierung

Beispielcode

<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> 

Eröffnung dieses mit einer .htaccess mit grundlegenden Authentifizierungsergebnisse in GET [...]mymodule.js [HTTP/1.1 401 Authorization Required 1ms] auf Firefox 54 (dom.moduleScripts.enabled, funktioniert es ohne .htaccess).

.htaccess

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

Antwort

3

Es scheint, dass der HTML-Code von Firefox zwischengespeichert wird und Sie nicht mit dem Server authentifizieren.

können Sie versuchen, die folgenden:


html-Datei-Caching zu verhindern. In den .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> 

Verwendung PHP-Erweiterung für anstelle von HTML


+0

Leider weder die .htaccess-Änderung Auch das Umbenennen von 'index.html' in' index.php' löste das Problem. –

+0

Hat es für Sie funktioniert? –

0

Sie können versuchen, die folgenden:

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