개발/js·jquery

javascript + ajax 오류 해결하는 여러가지 방법

반응형

javascript로 ajax를 활용하여 값을 저장 불러올때 오류가 나는 경우, 아래와 같은 코드를 추가해주면 어디서 오류가 나는지 알 수 있다.

   success: function(result) {
          if (result) {
              alert("완료");
          } else {
              alert("전송된 값 없음");
          }
      },
      error: function() {
          alert("에러 발생");
      }

 

 

[적용예시]

    $.ajax({
      type:"POST",
      url:"/shop/ajax_uploader.php",
      data: { 
        it_id : it_id,
        is_id : is_id
      },
      contentType: "application/json",
      success: function(result) {
          if (result) {
              alert("완료");
          } else {
              alert("전송된 값 없음");
          }
      },
      error: function() {
          alert("에러 발생");
      }
  })

 

 

1. "에러발생" 결과값이 뜨는 경우

ajax로 로드되는 파일 (예시의 경우에는 /shop/ajax_uploader.php 파일) 자체가 오류일 확률이 높다. 이 경우에는 ajax url (http://도메인.com/shop/ajax_uploader.php) 에 직접 접속해보면 거의 500에러로 뜨는 경우가 많다. 파일 자체의 오류이니 어디 오타가 없는지, 코드에 이상은 없는지 점검해봐야한다.

호랑이보다 무섭다는 500 에러

 

[방법1] ajax로 불러오는 파일의 경로 확인

=> 파일 경로가 너무 깊숙히 있으면 안된다. 왠만하면 최상단이나 상위폴더 1~2개정도 내에 있는 곳에 파일이 위치하는 것이 좋다.

$.ajax({
	type: "POST",
	url: "/shop/ajax_uploader.php",	
	//url: shop_skin_url+"/multi/ajax_uploader.php", // 파일 경로가 너무 복잡함		
    data:{
      "it_id": it_id,
      "is_id": is_id
    },
    dataType: "json",
    cache: false,
    success: function(data){
        console.log(data);
    }
})

 

[방법2] PHP 파일 상단 DB와 연결되는 부분 경로가 맞는지 확인해보기

=> 쿼리문에 문제가 생기는 경우 상단 절대경로 체크 후, DB와 연결이 잘 되는지 확인해 봐야함.

<?php
include_once('./_common.php');

$it_id = $_POST['it_id']; 
$is_id = $_POST['is_id'];

//(중간생략)


echo json_encode($response);

?>

 

 


2. "전송된 값이 없음" 뜨는 경우

전송된 값이 없음으로 뜨는 경우는 ajax 파일 처리 후 원래 파일로 제대로 결과 값이 제대로 넘어오지 않아 발생하는 경우이다.

=> ajax 스크립트에서  dataType: "json" 나  contentType: "application/json" 가 있다면 삭제하면 정상 작동된다. (왜인지는 잘 모르겠다...)

 

 

 

반응형