| 제목 | 정상 동작 하는데, ajax 200 에러 뜨고 있는데요... | ||
|---|---|---|---|
| 카테고리 | PHP | ||
| 글쓴이 | 신일 | 작성시각 | 2019/08/02 14:24:56 | 
|  | |||
| 안녕하세요, 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
                             | 
| 
                                신일
                                /
                                2019/08/02 15:40:11 /
                                추천
                                0
                             와~ 강민님 추정하신게 맞았네요!^^ 감사합니다^^ | 
코드만으로는 잘은 모르겠지만, 상황을 상상해보면
send_email() 메서드 내부에 어떤 echo가 있진 않은가요?
dataType이 json인데, json 데이터 뒤에 어떤 문자 또는 공백이 추가로 붙은 상태로 echo되는게 아닌가싶네요
저 send_email()의 유무에 다른 response의 결과가 정확히 일치하는지 확인해보는게 우선일듯 싶네요.