개발 Q&A

제목 정상 동작 하는데, ajax 200 에러 뜨고 있는데요...
카테고리 PHP
글쓴이 신일 작성시각 2019/08/02 14:24:56
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 9558   RSS

안녕하세요, ajax 200 에러 alert이 뜨고 있는데요,  동작은 정상 작동 합니다.

특정 코드만 빼면  alert이 안 뜹니다.  왜 그런지 납득(?)이 되질 않아서요, 혹시 아시는 분 계시면 감사하겠습니다.

if( $result == true ) { $this->send_email(); }   <==== 이 줄이 들어가면 200 에러 alert이 뜹니다. 그런데 정상 동작은 됩니다.

 

[컨트롤러 코드]

    public function apply_insert()
    {    	           
		$this->form_validation->set_rules('rbs_id', 'required');
		$this->form_validation->set_rules('mem_id', 'required');
		$this->form_validation->set_rules('pbs_id', 'required');

		if ( $this->form_validation->run() == TRUE )                                  //폼 벨리데이션이 정상 통과 했다면
		{   
            ini_set('allow_url_fopen',1);                                             
            $url = $this->input->post('parsing_url', TRUE);                           l
            $html = file_get_html( $url );                                           

            //모델로 넘길 data
            $data = array(
              'db_table_name' => 'apply' ,                                            
              'rbs_id' => $this->input->post('rbs_id', TRUE) ,                        
			  'mem_id' => $this->input->post('mem_id', TRUE) ,                        
              'pbs_id' => $this->input->post('pbs_id', TRUE) ,                        
            );
            $result = $this->apply_m->apply_insert($data);                            //json으로 변환해서 뷰로 값 넘김
            echo json_encode($result);

            //[2]해당 지원자 알림 메일링
            if( $result == true ) { $this->send_email(); }                            //아래 send_email() 함수 호출  
	    }	                                                    
    }

 

[ 뷰 소스코드]

$.ajax ({ 
   	url : "/recruit/apply_insert",
   	type : "POST",
   	dataType : "json",
   	data : {
   		   //"csrf_test_name" : getCookie('csrf_cookie_name'),
		   rbs_id : rbs_id ,
		   mem_id : mem_id ,
		   pbs_id : choice_pbs_id ,                                                //선택한 프로필의 pbs_id
		   },
    success : function(result)                                                     //리턴 값이 있을 시 
    {	
        if (result == 8000)
        {
	        alert("이미 지원한 입니다");   
        } 
        else 
        {
	        alert("지원완료 되었으며, 전달 되었습니다");
        }
    },
    error : function(request,status,error)                                         //리턴 값이 없을 시 
    {
        alert(request.status + " 에러가 발행해서 처리하지 못했습니다");
    }
})

 

 다음글 트리거 작성중에 문제가 있어서 질문 올립니다.
 이전글 배열 foreach. 안녕하세요, 수고들 많으십니다. ... (6)

댓글

배강민 / 2019/08/02 14:56:30 / 추천 0

코드만으로는 잘은 모르겠지만, 상황을 상상해보면

send_email() 메서드 내부에  어떤 echo가 있진 않은가요? 

dataType이 json인데, json 데이터 뒤에 어떤 문자 또는 공백이 추가로 붙은 상태로 echo되는게 아닌가싶네요

저 send_email()의 유무에 다른 response의 결과가 정확히 일치하는지 확인해보는게 우선일듯 싶네요.

신일 / 2019/08/02 15:40:11 / 추천 0

와~ 강민님 추정하신게 맞았네요!^^

감사합니다^^