2017-06-23 50 views
16

Po uruchomieniu poniższego języka JavaScript można pomyślnie zalogować się, ale nie uzyskać dostępu do modułów. Jak mogę przekazać im uwierzytelnienie?Moduły JavaScript ES6 nie są przesyłane wzdłuż podstawowego uwierzytelniania .htaccess

Przykładowy kod

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

Otwarcie to z .htaccess z podstawowymi wynikami uwierzytelniania w GET [...]mymodule.js [HTTP/1.1 401 Authorization Required 1ms] na Firefox 54 (dom.moduleScripts.enabled, to działa bez .htaccess).

.htaccess

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

Odpowiedz

3

Wydaje się, że HTML jest buforowane przez Firefoksa i nie uwierzytelnienia na serwerze.

Można spróbować wykonać następujące czynności:


Zapobiegaj buforowania plików html. Dodaj do .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> 

użycia rozszerzenia PHP zamiast HTML


+0

Niestety, ani zmiany .htaccess zmiana nazwy 'index.html' na' index.php' nie rozwiązała problemu. –

+0

Czy to działa? –

0

Można spróbować wykonać następujące czynności:

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