基本認証によって保護されている Web サイトがあり、その下に特定の JavaScript ファイルがあります。
ファイルをロードするときに認証ヘッダーに詳細を入力して、別のMVC3サイトからそのjavascriptファイルをロードしたいのですが、私が試していることはうまくいかないようです-常に基本認証ログインダイアログがポップアップしています:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>Auth test</title>
</head>
<body>
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/Base64.js"></script>
<h2>Index</h2>
<script type="text/javascript">
$(document).ready(function () {
var auth = make_base_auth('domain\user', 'password');
$.ajaxSetup({
headers: {
'Authorization': auth
}
});
$.ajax({
url: 'https://localhost/WebClient/scripts/bob.js',
dataType: 'script',
//username: 'domain\user',
//password: 'password',
//withCredentials: true,
//crossDomain: true,
//headers: { 'Authorization': auth },
success: function (data) {
alert("Got the script!");
callFunctionInTheOtherJSFile();
},
async: false
});
});
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = Base64.encode(tok);
return "Basic " + hash;
}
</script>
</body>
</html>
コードを機能させるために何をすべきか考えていますか?
コメントアウトされたさまざまな部分からわかるように、いくつかの異なる方法を試しました (新しい jQuery メソッドや古い jQuery メソッドなど)。
参考までに、Base64 JS はここから取得されます - http://www.webtoolkit.info/javascript-base64.htmlで説明されているように - http://coderseye.com/2007/how-to-do-http-basic- auth-in-ajax.html