| 제목 | 댓글 ajax code:500 error:Internal Server Error | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 강동원 | 작성시각 | 2016/12/11 18:39:31 |
|
|
|||
// Controller
function comment() {
$ajax_data = array(
'table' => $this->input->post('table'),
'p_description' => $this->input->post('txt_comment'),
'idx' => $this->input->post('idx')
);
$this->punch_m->comment_write($ajax_data);
$comment['list'] = $this->punch_m->comment_list($ajax_data['idx']);
echo json_encode($comment['list']);
}
// Model
function comment_write($data) {
$data_array = array(
'p_description' => $data['p_description'],
'member_id' => $this->session->userdata('member_id'),
'member_name' => $this->session->userdata('member_name'),
'p_id' => $data['idx']
);
$this->db->set('p_reg_date', 'now()', false);
$this->db->insert($data['table'], $data_array);
}
function comment_list($parent_idx = '') {
$sql = "select * from punch where p_id='".$parent_idx."'";
$res = $this->db->query($sql);
$rows = $res->result();
return $rows;
}
$.ajax({
type: 'POST',
dataType: 'JSON',
data: {
'table' : table,
'idx' : idx,
'page' : page,
'txt_comment' : txt_comment,
'member_id' : member_id,
'member_name' : member_name,
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
},
url: '<?php echo base_url();?>index.php/punch/comment',
async : true,
contentType:"application/json",
success: function(result) {
if (result !== '') {
alert("success");
console.log(result);
//$('.wrap_list_cmt').html(post_data['txt_comment']);
} else {
alert('Server error');
}
},
error: function(request, status, error){
alert("code:"+request.status+"\n"+"\n"+"error:"+error);
//alert("error");
console.log("code:"+request.status+"\n"+"\n"+"error:"+error);
},
complete: function(result) {
//$('#txt_comment').val();
//alert(result);
}
});
안녕하세요. 이번에 새로이 입분한 초보입니다.
나름 ajax로 댓글넣는 것을 구현 중인데 code:500 error:Internal Server Error이놈때문에 고생 중입니다. ㅠㅠ 위와 같은 코드로 데이터 통신을 시도할 시에는 500에러가 뜨고
contentType 를 주석 처리하면 error:SyntaxError: Unexpected token < in JSON at position 8199 에러가 뜹니다.. ㅠㅠ
ajax 구문 중 dataType 부분과 contentType 부분을 주석처리한 후 통신을 시도하면 데이터를 주고 받기는 받습니다. 그런데 받아온 데이터 뒤로 <html>..................</html> 과같은 값이 주고 받은 데이터 뒤에 붙어서 나옵니다.
{"p_idx":"406","p_id":"2","p_p_no":"0","p_mc_pkg":"","p_tag_no":"","p_responsible":"","p_mc_responsible":"","p_skid":"","p_code":"","p_priority":"0","p_status":"0","p_clear_date":"0000-00-00 00:00:00","p_verified_date":"0000-00-00 00:00:00","p_p_id":"","p_wiring":"","p_description":"\u3147\u3147\u3147","p_materials":"","p_worker":"","p_reg_date":"2016-12-11 19:11:35","member_id":"knut9900848","member_name":"Steve Yoo"}]<!DOCTYPE html>
<html lang="kr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
.....................
.....................
</html>
이것 저것 일주일간 검색을 해보고 시도를 해서 데이터 주고 받는 것 까지 성공을 했는데 여기서 막히네요 ㅠㅠ 혹시 위 코드에서 문제되는 부분이 있으면 지적 부탁드립니다 (__ ) |
|||
| 다음글 | session_id 출력 (3) | ||
| 이전글 | {elapsed_time} (3) | ||
|
변종원(웅파)
/
2016/12/11 20:45:01 /
추천
1
|
|
강동원
/
2016/12/11 21:00:39 /
추천
0
고맙습니다. 그 생각을 못햇네요. 그리고 한빛에서 몇일전 플레이스토어에 있는 책 2쇄로 업데이트 해 줘서 잘 쓰고 있습니다. 감사합니다. |
|
강동원
/
2016/12/11 21:02:53 /
추천
0
이런 이유로 종원님 책에는 comment Controller을 따로 빼셨군요. 감사합니다.
|
뒤에 html이 붙어서 출력되니까 json으로 인식 못해서 나오는 에러입니다.
컨트롤러내에 remap에서 뷰를 호출하고 있는지 보세요. 만약 호출하고 있으면 ajax 호출일 경우는 remap에서 html을 자동으로 붙이지 않도록 해야 합니다.