2011-01-17 3 views
0

오늘 내 웹 사이트의 내 dev 버전이 성공 콜백을 실행하지 않지만 다른 모든 자바 스크립트 및 jquery 코드가 잘 실행되고 있음을 발견했습니다. 심지어 내 아약스 요청이 수행되고 방화범에 응답을 볼 수 있습니다.

$('#login').submit(function(){ 
    var email = $('#l_email').val(); 
    var pass = $('#l_pass').val(); 
    if(email && pass != ''){ 
     var str = decodeURIComponent($(this).serialize()); 
     $.ajax({ 
      type: "POST", 
      url: "login.php", 
      data: str, 
      success: function(msg){ 
       if(msg == 'OK'){ 
        window.location = 'index.php' 
       }else if (msg == 'NOT_OK'){ 
        if(lang == 'lv'){ 
         alert(message); 
        }else if(lang == 'ru'){ 
         alert(message); 
        } 
       }else if (msg == 'EMAIL_NOT_VALID'){ 
        if(lang == 'lv'){ 
         alert(message); 
        }else if(lang == 'ru'){ 
         alert(message); 
        }  
       } 
      } 
     }); 
    }else{ 
     alert('That form is empty.'); 
    } 
    return false; 
}); 

것은 $ .ajax 부분이 잘 실행되고 방화 광구 "OK"에서 응답을 볼 수 있습니다. 그러나 리디렉션은 일어나지 않으며 심지어 리디렉션을 alert 또는 console.log와 같은 것으로 바꾸더라도 아무 것도 나오지 않습니다.

어떻게 될 수 있습니까? 화재 경보기가 오류가 없기 때문에 추적하기가 정말 어렵습니다.

해결 된 : Reigel 제안에 의한의 성공 콜백 데이터 반환 $ .trim();

+0

'alert (msg)'를 할 때 올바른/기대 값을 얻고 있습니까? – Reigel

+0

오류 : 함수를 구현하지 않는 이유는 무엇입니까? 어쩌면 뭔가 잘못 됐어? – heximal

+0

그게 무슨 소리 야? 내 코드는 성공 콜백을 실행하지 않으므로 경고가 결코 발생하지 않습니다. 하지만 예 msg는 다시 OK로 돌아가고 else는 수행되지 않습니다. – arma

답변

0

성공 함수의 코드에 else { alert('No match for msg'); } 블록을 추가하는 것은 어떨까요? msg가 IF 문과 일치하지 않는 경우가 있습니다.

jQuery doc은 성공 함수의 서명이 다음과 같아야한다고 말합니다. success(data, textStatus, XMLHttpRequest) 그래서 응답 상태가 아니라 데이터 인 경우 msg를 추측합니다.

+0

msg가 올바른 값을 다시 얻고 있지만 어떤 이유로 $ .trim (msg); 그래서 그것은 예상대로 작동합니다. 하지만 문제는 내가 $ .trim없이 2 개월 동안 그 코드를 사용했다는 것입니다. – arma

관련 문제