2011-09-17 3 views
2

jQuery의 아약스 메서드 및 메서드를 사용하여 단순히 오류 콜백을 호출하려고합니다.jQuery 아약스 메서드의 간단한 문제

$('form').submit(function() { 
    $.ajax({ 
     url: this.action, 
     data: $(this).serialize(), 
     type: 'POST', 
     dataType: 'html', 
     success: function() { 
      debugger 
      alert('alert'); 
     }, 
     error: function(xhr, status, error) { 
      //status value is "error". 
     } 
    }); 
}); 

ASP.NET MVC 작업 방법을 요청하고 있습니다. 메서드가 예상대로 요청을 가져오고 아무런 문제없이 부분 뷰를 반환합니다. 그런 다음 자세한 오류 정보를 지정하지 않고 jquery 호출 오류 콜백. 오류에 대한 세부 정보를 알고 싶다면 무엇이 문제인지 결정할 수 있습니다.

편집 : 아래 코드를 테스트했는데 문제없이 작동합니다. 방금 양식 제출 이벤트를 취소했습니다.

$('form').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: this.action, 
     data: $(this).serialize(), 
     type: 'POST', 
     dataType: 'html', 
     success: function() { 
      debugger 
      alert('alert'); 
     }, 
     error: function(xhr, status, error) { 
      //status value is "error". 
     } 
    }); 
}); 

아직도 정답은이 오류의 이유를 말할 수있는 사람을 기다리고 있습니다.

+0

this.action을 확인하고 양식의 절대 URL을 반환합니다. – AnyOne

+0

"예상대로 메소드가 요청을받습니다."라고 말하면됩니다. 컨트롤러가 GET 요청을 기다리고 있다는 것을 의미합니까? 네가 요청을 POST하고 있기 때문이다. 또한 AJAX 호출 후에 양식을 제출하면 false가 반환됩니다. 또한 Firebug는 콘솔에 오류를 표시합니까? – Alex

+0

@Alex - 아니, 그냥 요청하는 방법을 의미합니다. 컨트롤러 방식은 문제없이 작동합니다. 그리고 크롬 디버그 콘솔은 오류를 발생시키지 않습니다. 하지만 내가 왜 e.preventDefault()를 호출하지 못해 에러가 발생하는지 – AnyOne

답변

1

참조 일 수 있습니까? this.action은 정의되지 않았습니까? 가장 좋아하는 dom 인스펙터의 네트워크 탭이나 firebug의 오류 콘솔을보십시오. POST 요청이 예상대로 표시됩니까? (URL, 데이터 전송, 오류 코드 등을 확인하십시오.)

$ (this).attr('action') 확실히 작동합니다. this을 양식으로 가정하십시오.