onbeforeunload 이벤트 에서 Ajax 를 호출 하여 사용자 로그아웃 작업 을 실현 합 니 다 (IE, Firefox, Chrome 호 환)
브 라 우 저 는 이 요 구 를 처리 할 때 다음 과 같은 두 가지 가 있 습 니 다.
1. Ajax 를 처리 할 때의 불 호환성 은 jQuery 로 해결 합 니 다.
2. Ajax 요청 을 보 낼 때 호 환 되 지 않 음
주요 코드 는 다음 과 같 습 니 다.
function logout() {
var logoutURL = "xxxx"; // url
if (logoutURL == "") return;
var userAgent = navigator.userAgent.toLowerCase();
if(userAgent.indexOf("msie")>-1) { //IE
$.ajax({ url: logoutURL, crossDomain: true, async: false, dataType: "jsonp" });
}else { //FireFox Chrome
$.ajax({ url: logoutURL, async: false });
}
}
window.onbeforeunload = function () {
logout();
};
코드 설명:
fireforx 는 js 를 처리 할 때 보안 수준 이 높 고 IE, Chrome 에서 js 가 사용 할 수 있 는 권한 이 Friefox 에서 제한 되 어 있 기 때문에 통과 합 니 다.
if(userAgent.indexOf("msie")>-1) { //IE
}else { //FireFox Chrome
}
이 코드 는 현재 브 라 우 저 종 류 를 판단 합 니 다.
Firefox, Chrome 에 대한 호 환 코드 는 다음 과 같 습 니 다.
$.ajax({ url: logoutURL, async: false });
async 는 false, 즉 동기 화 를 설정 해 야 합 니 다. true 비동기 방식 을 사용 할 수 없습니다. 그렇지 않 으 면 요청 이 발송 되 지 않 을 수 있 습 니 다.사실 크롬 은 IE 에 대한 아래 코드 에 도 적 용 됩 니 다. 브 라 우 저 를 끌 때 자동 으로 로그아웃 명령 을 보 냅 니 다. 그러나 브 라 우 저의 새로 고침 단 추 를 눌 렀 을 때 도 자동 으로 사용 자 를 로그아웃 하 기 를 원할 때 크롬 은 위 코드 만 사용 해 야 로그아웃 요청 을 할 수 있 습 니 다.IE 에 대한 호 환 코드 는 다음 과 같 습 니 다.
$.ajax({ url: logoutURL, crossDomain: true, async: false, dataType: "jsonp" });
crossDomain 을 true 로 설정 한 것 은 도 메 인 방문 문 제 를 해결 하기 위해 서 입 니 다. 이 문제 가 존재 하지 않 으 면 이 속성 은 무시 할 수 있 습 니 다.async 속성 은 false 로 설정 하 는 것 이 좋 습 니 다. true 도 가능 합 니 다.dataType: "jsonp" 라 는 속성 도 크로스 도 메 인 방문 문 제 를 해결 하기 위해 크로스 도 메 인과 함께 사용 합 니 다. 크로스 도 메 인 문제 가 존재 하지 않 습 니 다. 이 두 속성 은 생략 할 수 있 습 니 다.이상 의 코드 는 IE9, Chrome 27, Firefox 21 테스트 에 통과 되 었 습 니 다.
다음으로 전송:https://www.cnblogs.com/liancs/p/3879257.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.