2011-11-29 6 views
2

그래서 나는 이상한 문제가 있습니다. 회사의 CMS에는 전자 메일을 보내기위한 AJAX 호출을하는 뉴스 레터 시스템이 있습니다. 이제는 모든 운영 체제의 모든 최신 브라우저에서 완벽하게 작동하지만 한 클라이언트 만 사용할 수는 없습니다.특정 컴퓨터에서 AJAX 호출이 경고없이 발생하지 않습니다.

이 클라이언트는 Windows 7과 IE9를 사용하고 있으며, Windows 7을 직접 사용하고 IE9를 사용해 보았습니다 (모든 호환 모드에서도).하지만 항상 작동 할 것입니다.

내가 왜 작동하지 않는지도 모르지만, AJAX 호출 앞뒤에 alert을 배치하여 "수정"할 수있었습니다.

나는 하드웨어 나 연결성이 있어야한다고 생각하고 누군가가 설명을하기를 희망했다. 여기에 (경고 포함) AJAX 호출은 그래서 당신은 아무 문제 (오른쪽?)가없는 볼 수 있습니다 finished_processing() 다음 제거 처리 상자에

$('#send_single').unbind().click(function(event) { 
    event.preventDefault(); 
    processing();    
    alert('one'); 

    $.post(
     'newsletter/ajax.php', 
     { 
      action: 'send_single', 
      email: $('#single_email').val(), 
      template: $('#select_template').val(), 
      id: $('#select_newsletter').val() 
     }, 
     function(data) { 
      alert('two'); 
      finished_processing();  
      cmsalert(data); 
     } 
    ); 
}); 

processing() 페이드가. 경고 상자가 없으면 finished_processing()은 발생하지 않으며 경고 상자가 예상대로 실행됩니다.

처리부() 및finished_processing()는

function processing(){ 

    $('#full_overlay').fadeIn(); 
    $('#processing').fadeIn(); 

} 

function finished_processing(){ 

    $('#full_overlay').fadeOut(); 
    $('#processing').fadeOut(); 

} 

#full_overlay 흰색 오버레이 전체 화면 고정 DIV이다. #processing은 로딩 gif와 "Please wait ..."문자열이 포함 된 가운데 div입니다.

finished_processing()이 발생하지 않으므로 cmsalert()과 어떤 관련이 있다고 생각하지 않습니다. (A가 포함 된 페이지의 하단에있는 사업부 슬라이드 cmsalert - - 일반적으로 성공 메시지)

+0

cmsalert()는 무엇을합니까? 내가 애니메이션과 관련이 있거나 화면에 무언가를 표시하여 finish_process() 메소드가 보이지 않게한다. (실행중인 것을 내기) – ManseUK

+0

'processing()'에 대한 코드도 게시 할 수 있습니까? –

+0

아마도'processing'과'finished_processing'을 봐야 할 것입니다. 개발자 도구를 열 때 무엇을 볼 수 있습니까? IE9는 적절한 디버깅 기능을 갖추고 있습니다. –

답변

0

처럼 당신의 finished_processing 기능을 변화의 jquery docs의 예제 쇼 같은 것을보십시오 :

function finished_processing(){ 

    $('#full_overlay').promise().done(function() { this.fadeOut(); }); 
    $('#processing').promise().done(function() { this.fadeOut(); }); 

} 

당신은 또한 할 수있다 클라이언트가 여러 번 연속해서 클릭하면 문제가 생길 수 있으므로이를 염두에 두십시오. 나는 $.post()의 반환 또한 동일한 라인 ($.post().promise() 또는 $.post().done)에서 사용할 수 있기 때문에 변수에 저장하고 사용할 수 있다고 생각합니다. Deferred Object을보고 싶을 수도 있습니다.

관련 문제