2014-03-03 2 views
-2

몇 달 동안 jquery 1.9를 사용하고 있으며 사용자가 링크를 클릭하면 $.ajax과 jQuery를 사용합니다.ajax의 비동기가 Chrome에서 더 이상 작동하지 않습니다.

실제로 사용자가 해당 링크를 클릭하면 다음 페이지가로드되는 동안 (긴로드) ajax 쿼리가 수행됩니다. Chrome과 IE 9에서 async: false과 완벽하게 작동했습니다.

2 주 전에 Chrome을 최신 버전으로 업데이트했으며 더 이상 작동하지 않습니다. (아약스가로드되지 않았지만 다음 페이지가 나타납니다.) 하지만 그것은 IE에서 작동합니다. 내 JS 콘솔에서 오류가없는

<a href="http://..." onclick="doOnClick(1);">link</a> 

:

function doOnClick(id) { 
    $.ajax({ 
     dataType: "json", 
     url: 'http://...", 
     async: false, 
     data: { id : id } 
    }).success(function(data) { 
     //do some stuff 
}).fail(function(){ 
     //do some stuff 
    }); 
} 

내 링크 :

편집은 여기 $ 아약스 내 코드입니다.

+0

추가 코드가 좋은 방법 : 케이스의 – Alvaro

+3

99.99에서 %로'비동기 : FALSE '는 사용할 수 없습니다. 이제 사용중인 관련 코드를 제공하십시오. BTW, 콘솔을 확인하십시오. 오류가 있습니까? 궁금해서, 당신은 onbeforeunload 이벤트 동작을 오버라이드하려고합니까? 나중에, 크롬은 더 이상 그것을 지원하지 않습니다. 이 경우 동기식 Ajax 요청이 정확했던 유일한 AFAIK 사례입니다. 이제 간단한 해결 방법이 가능합니다. –

+1

Chrome이 'async : false'를 지원하지 않습니까? 축하 할 시간, 내 생각 엔 :-D –

답변

-1

사용 비동기 요청, 설정 옵션 컨텍스트 :

$('.someLinks').on('click', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     dataType: "json", 
     url: url, 
     data: param, 
     context: this 
    }).success(function (data) { 
     //do some stuff 
    }).fail(function() { 
     //do some stuff 
    }).always(function() { 
     this.click(); // call native click method // NOTE: don't use here: $(this).click(); 
    }); 
}); 
+0

"네이티브 클릭 메서드 호출"은 거의 항상 AJAX 호출을 수행 한 직후에 원하지 않는 탐색 결과로 인해 바람직하지 않습니다. –

+0

@JanDvorak 질문에 다음과 같은 질문이 있습니다. OP가 예상 한 것 같습니다. –

+0

내 아약스 쿼리가 응답 한 후에 내 페이지를로드하고 싶지는 않지만 내 페이지가로드되는 동안 내 아약스 쿼리를 수행해야합니다. – Florent06

관련 문제