2017-04-18 7 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

: 내 예에서

모든 JQuery와 아약스 호출 결과 상태 대화 상자를 표시합니다 401 코드와 첫 번째 항목에 대한 점검? – Hulothe

+0

내 나쁜, 나는 기본적인 HTTP 인증을 의미. 나는 고칠 것이다. –

+1

클라이언트는 팝업에 대한 제어권이 없습니다. 자바 스크립트는 멈출 수 없습니다. –

답변

2

당신은 401 HTTP 상태 코드 대신 인증 HTTP 헤더에 대한 응답을 수정해야합니다. 그런 다음이 응답을 받고 자신의 로그인 대화 상자 팝업을 표시 할 수 있습니다. 당신이 HTML 인증에 의해 무슨 뜻 이죠

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"); 
});