Ajax 요청에서 window.open 호출을 가로채는 방법

php中世界最好的语言
풀어 주다: 2018-05-24 14:59:09
원래의
1827명이 탐색했습니다.

이번에는 ajax 요청에서 window.open 호출 차단 처리 방법을 알려드리겠습니다. ajax 요청에서 window.open 호출 차단 처리 시 주의사항은 무엇인가요? 사례를 살펴보겠습니다.

이 방법의 장점 설명: 예를 들어 ajax콜백 함수가 실패하면 기본적으로 브라우저에서 열린 빈 링크가 자동으로 닫히고 사용자 경험이 더 좋습니다.

 var newwin;
    $("#btn").click(function(){
        newwim = window.open();
        //此处调用ajax,异步即可:
        $.ajax({
            type:'POST',
            url: ajaxurl,       
            dataType : 'json',
            data:parameter,  
            beforeSend : function(){},
            success:function(data) {
                if(data.TSR_CODE == "0"){                
                       newwin.location.href = xxx;//xxx为后端返回的地址;            
                }else{
                    alert(data.TSR_MSG);
                    newwin.close();//此处为ajax失败方法,自动关闭刚才会打开的页面;
                }
            },
            error:function(){
                console.log("访问出错,请重试!");
            },
            complete:function(){}
        });
    });
로그인 후 복사
  • 두 번째 솔루션 분석:

이 방법은 테스트되었습니다. 예를 들어 백그라운드에서 오프사이트 URL을 반환하면 Google Chrome, 360 브라우저 등이 요청을 가로채고 Firefox , QQ 브라우저는 차단되지 않을 것입니다. 브라우저 자체가 이러한 유형의 외부 URL을 차단할 것으로 예측되며, 일반 URL은 차단되지 않습니다.

 $("#btn").click(function(){
        //此处调用ajax,异步即可:
        $.ajax({
            type:'POST',
            url: ajaxurl,       
            dataType : 'json',
            async:false,//改为同步请求
            data:parameter,  
            beforeSend : function(){},
            success:function(data) {
                if(data.TSR_CODE == "0"){                
                     window.open(xxx);               
                }else{
                    alert(data.TSR_MSG);                    
                }
            },
            error:function(){
                console.log("访问出错,请重试!");
            },
            complete:function(){}
        });
로그인 후 복사

이 기사의 사례를 읽으신 후 해당 방법을 익히셨을 것입니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트 기타 관련 기사를 주목하세요!

추천 자료:

JS

PromiseA+


의 세부 구현 단계

위 내용은 Ajax 요청에서 window.open 호출을 가로채는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿