2018 - 04 - 24 ajax 새 탭 열기 / 새 창 이 브 라 우 저 에 의 해 차단 되 었 습 니 다 (비 a, 비 form)

1. 차단 원리 분석
ajax 등 비동기 요청 에 대해 서 는 페이지 를 엽 니 다. 이것 은 브 라 우 저 에서 허용 되 지 않 습 니 다. 브 라 우 저 는 사용자 가 조작 할 수 있 고 비동기 작업 을 허용 하지 않 습 니 다.차단 을 건 너 뛰 려 면 브 라 우 저의 요 구 를 만족 시 켜 야 합 니 다.
2. 실제 테스트 성공 방식 (a 라벨 을 추가 하지 않 고 뛰 기, form 이 아 닌 테스트 를 통 해 비동기 ajax 내부 에서 하 는 모든 뛰 기 동작 이 차단 된다)
html


js (저 는 angular 를 사 용 했 습 니 다. 대응 하 는 언어 는 ts 를 사 용 했 습 니 다.)
function pay() {
//        ,       
// let       var   ,        ,        。
     let aliPayWindow = window.open("about:blank");
     //    $.ajax()       ,      js           
     this.payOrderService.create(payOrder).subscribe(data => {
       let aHref = this.payOrderService.getBaseURL() + '/pay/' + data.id; 
     //            ,               ,         
     //     ,     
       aliPayWindow.location.href = aHref;
       aliPayWindow.focus();
     //       
       Layer.alert('          !',() => window.location.reload());
     });

}

좋은 웹페이지 즐겨찾기