我们有一个受基本身份验证保护的网站,下面有一个特定的 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 方法等)!
作为参考,Base64 JS 取自这里 - http://www.webtoolkit.info/javascript-base64.html如此处所述 - http://coderseye.com/2007/how-to-do-http-basic- auth-in-ajax.html