2

基本認証によって保護されている 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

4

1 に答える 1

1

http://user:pass@hostname/標準構文を試しましたか?

于 2012-11-30T22:21:43.070 に答える