2012-07-11 5 views
0
function showDialog(link) { 
    $('#dialog .newsletter-join').click(function() { 
     email = $.trim($(this).parent().find('.email').val()); 
     if (email != "Email Address" && email.length > 5) { 
      $.ajax({ 
       url: '/newsletter/join', 
       data: { 
        'email': email, 
        'pid': $('#dialog .pid').html().trim() 
       } 
      }); 

      return true; 
     } 
     return false; 
    }); 
} 

이 코드는 FF에서 제대로 실행되며 디버깅 모드에서 실행될 때 완벽하게 실행됩니다. 그렇지 않으면 아무 것도 반환하지 않습니다.jQuery에 대한 AJAX 요청이 작동하지 않습니다.

실행하면 아무 것도 표시되지 않는 경고 상자가 표시됩니다. 콘솔에서도 XMLHttp 응답에는 아무것도 표시되지 않습니다.

cache:false // It just exeutes for the first time 
datatype:html 

당신이 날이 문제를 추적하는 방법을 알려 주시기 바랍니다 수 : 나는 몇 가지 다른 변화를 시도?

업데이트 코드 :

나는 다음과 같은 스크립트를

$(document).ready(function() { 
    // $(window).load(function() { 
    showDialog(); 
    return true; 
    //}); 
}); 

function showDialog(link) { 
    $('#dialog .newsletter-join').click(function() { 
     email = $.trim($(this).parent().find('.email').val()); 
     if (email != "Email Address" && email.length > 5) { 
      $.ajax({ 
       url: '/newsletter/join', 
       data: { 
        'email': email, 
        'pid': $('#dialog .pid').html().trim() 
       }, 
       success: function(data) { 
        alert("Suvvess" + data); 
       }, 
       error: function(xmlHttpRequest, textStatus, errorThrown) { 
        alert("error" + errorThrown); 
       } 
      }); 

      return true; 
     } 
     return false; 
    }); 
} 

최신 코드 변화를 사용하여 코드를 호출 오전 : 나는

async: false 
을 추가

아약스 호출이 변경 주시는 예상 된 결과가 있지만 모든 스크립트가 실행되지 않도록하므로이 문제는 영구적 인 해결책이 될 수 없습니다.

`라인이`$ .ajax` 전화 밖에 :
+2

귀하의'성공을 아약스 기능을 닫아야합니다. – bhamlin

+0

죄송합니다. 내 편이서 오타였습니다. xmlhttpresponse를 얻었는지보고 싶었습니다. 심지어 코드 동작을 꺼내도 여전히 동일합니다. – KAPILP

+0

@KAPILPATIL : 업데이트 된 코드를 게시 할 수 있습니까? –

답변

6

당신은 오류가 발생한 후

$.ajax({ 
       url:'/newsletter/join', 
       data:{ 'email':email, 'pid':$('#dialog .pid').html().trim() } 

    >>>HERE REMOVE IT  }); 
관련 문제