2012-04-23
jquery로 ajax를 사용할 경우 오류를 반환하는 방법은, 보통 아래와 같다.
$.ajax({
	type: "POST",
	url: "http://url.php",
	data: "data1="+data1 + "&data2=" + data2,
	success: function(msg){ }, 
	error: function(xhr, option, error){
		alert(xhr.status); //오류코드
		alert(error); //오류내용
	}
});

그럼 간단히 자주 뜰수 있는 오류들을 보여주자면, 아래와 같다.
코드 영문 한글설명
200 OK 요청 성공
401 Unauthorized 권한 없음
403 Forbidden 접근 거부
404 Not Found 페이지 없음
500 Internal Server Error 서버 내부 오류
출처 : http://www.javajigi.net/pages/viewpage.action?pageId=3919

필자는 오류코드 : 500 인 Internal Server Error가 제일 많이 뜨는 편인데, 처음에는 이 오류가 뭔지도 잘 모르겠고, 서버 내부 오류라고 하니, 서버에 무슨 문제가 있나? 라고도 생각했었다.. 뭐 아시는 분은 단번에 아실수 있지만, 필자는 아직 경험도 실력도 많이 부족한터라 삽질을 많이 했는데, 이 오류는 한마디로 이런것이다.
ajax를 요청하는 해당 페이지에 서버오류, 즉, php로 되어 있는 서버라면 php 관련 오류가 있어서 (간단한 문법오류부터, 함수나 클래스에서 발생할수 있는 오류같은..) 해당 페이지의 결과를 가져올수 없다는 소리다.
그리고 에러가 난다면 보통 해당 에러를 출력해주면 되지만, 에러를 출력해주지 않도록 설정을 해놓았다면, 해당 페이지에 ini_set( "display_errors", 1 ) 와 같은 설정을 해주면 될것이다.

뭐.. 간단한 거지만, 처음 ajax를 접했던 필자는.. 상당히 이 부분에서 삽질을 했었고, 아직도 가끔 이오류 때문에 조금이나마 고생을 하기도 해서.. 이렇게 글을 적어본다.