2017-06-23 12 views
16

次のJavasScriptを実行すると、正常にログインできますが、モジュールにはアクセスできません。どのように私はそれらに認証を渡すことができますか?Javascript ES6モジュールは.htaccess基本認証

サンプルコードのFirefox 54(それは.htaccessファイルなしで動作dom.moduleScripts.enabled、)上のGET [...]mymodule.js [HTTP/1.1 401 Authorization Required 1ms]での基本認証の結果と.htaccessファイルでこれを開く

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

の.htaccess

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

答えて

3

そのHTMLは、Firefoxでキャッシュされ、サーバーに認証しないようです。

あなたは次のことを試すことができます。


防止htmlファイルのキャッシュ。 の.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> 

使用PHP拡張を代わりにHTMLの


+0

、どちらの.htaccessの変更を'index.html'の名前を' index.php'に変更しても問題は解決しません。 –

+0

それはあなたのために働いたのですか? –

0

のためにあなたが次試すことができます。残念ながら

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