2017-04-18 17 views
-2

私は3種類の異なる$.load(...)クエリを使用して3ブロックのコンテンツを読み込むindex.htmlを持っています。 基本的なHTTP認証を使用すると、ログインとパスが4回要求されます。 1ページの負荷で、1つのコンテンツごとに。

$.load url?(セキュリティ上の理由から)に渡すことなく、ログインを維持するにはどうすればよいですか。

<div id="header"></div> 
    <div id="maindiv"></div> 
    <div id="footer"></div> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
     $("#header").load("?cmd=header"); 
     $("#maindiv").load("?cmd=viewconfig"); 
     $("#footer").load("?cmd=footer"); 
    }); 
    </script> 
+1

あなたがHTML認証とはどういう意味ですか? – Hulothe

+0

私の悪い、私は基本的なHTTP認証を意味した。私はそれを修正します。 –

+1

クライアントはポップアップを制御できません。 JavaScriptはそれを止めることはできません。 –

答えて

2

代わり認可HTTPヘッダー401 HTTPステータスコードに対する応答を変更しなければなりません。次に、これらの応答をキャッチして、独自のログインダイアログポップアップを表示することができます。私の例では

は、すべてのjQueryのAjaxの呼び出しの結果ステータスは401コードのためにチェックされ、最初の発生は、ダイアログが表示されます:

var loginFormShown = false; 
$.ajaxSetup({ 
    statusCode: { 
    401: function(xhr) { 
     if(!loginFormShown) { 
     console.log('Show login form popup', xhr.responseText); 
     loginFormShown = true; 
     } 
    } 
    } 
}); 
$(document).ready(function() { 
    $("#header").load("?cmd=header"); 
    $("#maindiv").load("?cmd=viewconfig"); 
    $("#footer").load("?cmd=footer"); 
}); 
関連する問題