>  기사  >  웹 프론트엔드  >  브라우저 가로채기를 방지하기 위해 Ajax 콜백을 사용하여 새 양식을 여는 효과적인 방법

브라우저 가로채기를 방지하기 위해 Ajax 콜백을 사용하여 새 양식을 여는 효과적인 방법

高洛峰
高洛峰원래의
2017-01-09 14:19:411349검색

Ajax 콜백은 브라우저 가로채기를 방지하기 위해 새로운 양식을 엽니다. 이렇게 하세요!

문제 분석:

function click_fun(){
   window.open("www.baidu.com");//能打开
  $.ajax({
    'url': '${pageContext.request.contextPath}/activity/savePrizes.htm',
    'type': 'post',
    'dataType': 'json',
    'data': data,
    success: function (data) {
      window.open("www.baidu.com");//被拦截
    },
    error:function(){
  
    }
  });
}

분석:
새 양식 열기는 클릭 이벤트 내에서만 트리거될 수 있습니다. 콜백 함수 내에서 열린 것을 가로채고 브라우저는 이를 광고 팝업과 같은 코드로 간주합니다

해결책 1:

function click_fun_new(){
  var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截
  $.ajax({
    'url': '${pageContext.request.contextPath}/activity/savePrizes.htm',
    'type': 'post',
    'dataType': 'json',
    'data': data,
    success: function (data) {
      tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径
    },
    error:function(){
      tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体
    }
  });
}

해결책 2:

function click_fun_new(){
  var flag = false;
  $.ajax({
    'url': '${pageContext.request.contextPath}/activity/savePrizes.htm',
    'type': 'post',
    'dataType': 'json',
    'data': data,
    'async':false,//同步请求
    success: function (data) {
      $("#a").attr("href","www.baidu.com");//当回调的时候更改页面上或创建的某个a标签的href
      flag = true;//更改标志
    },
    error:function(){
        
    }
  });
  if(flag){
    $("#a").click();//href属性更改后模拟点击
  }
}

위는 브라우저 차단을 방지하기 위해 ajax 콜백으로 새 양식을 여는 두 가지 방법이기를 바랍니다. 모두의 학습에 도움이 되었습니다.

새로운 양식을 여는 더 많은 ajax 콜백과 브라우저 가로채기를 방지하는 효과적인 방법을 보려면 PHP 중국어 웹사이트에서 관련 기사를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.