4
asp.net을 사용하고 있으며 서버에 대한 모든 요청에 대해 웹 응용 프로그램에서 $ .ajax 호출을 받았습니다.ajax 호출에서 세션이 만료되었는지 확인하는 방법은 무엇입니까?
사용자를 세션 종료시 로그인 페이지로 리디렉션하려고합니다.
<authentication mode="Forms">
<forms name=".CovertixAuthenticated" defaultUrl="Default.aspx" loginUrl="LoginPage.aspx" slidingExpiration="true" cookieless="UseCookies" protection="All" timeout="1"/>
</authentication>
<sessionState mode="InProc" cookieless="UseCookies" timeout="1"/>
나는 .ajaxError에서 확인하십시오 : 내 Web.config의에서
나는 설정
$(document).ajaxError(function(xhr, props) {
if (props.status == 401) {
var ParentUrl = encodeURIComponent(window.parent.location.href);
//alert(getLoginPage());
document.location.href = getLoginPage() + "?ReturnUrl=" + ParentUrl;
}
});
문제 내가 얻을 수 있습니다 응답 코드 = 500 (내부 서버 오류)
ajax 호출로 세션이 만료되었는지 확인하는 가장 좋은 방법은 무엇입니까? 또는 세션이 끝나면 자동으로 로그인 페이지로 사용자를 리디렉션 할 수 있습니까?
500은 처리되지 않은 서버의 실제 오류를 의미합니다. – Bernhard
당신이 계획을 세우는 것이 좋은 것 같아서 문제가 서버에서 정확히 무엇인지 식별해야합니다. 일반적인 문제는 처리기에서 세션을 사용하도록 설정하지 않아서 500 오류가 발생할 수 있습니다. 디버그 모드를 사용하려고 시도하거나 디버거를 사용하여 단계별로 확인하십시오. –
Ajax 호출은 세션을 계속 유지하므로 어떤 유형의 주기적 폴링이 있으면 세션이 아마도 시간 초과되지 않습니다. – Archer