그누보드 회원가입의 ajax 오류 : 익스플로어 7.0에서의 Ajax 오류 C00CE56E 해결
로빈아빠
본문
출처:http://crazyluv.tistory.com/7
Ajax를 이용해서 개발한 프로그램을 이용하는데..
어느날부턴가 C00CE56E 오류가 발생하기 시작했다.
알고봤더니 IE7을 이용하면서부터 발생한 문제로
오류가 발생한 이유는 다름아는 케릭터셋의 불분명한 명명 ㅡㅡ;
euc_kr, cp949, utf... 등으로 지정되어 있었던 것이다.
이것을 모두다 korean으로 지정해주고나서 오류가 사라졌다.
혹시라도 위와같은 오류가 발생한다면 charset을 확인해 보시라~
참고사이트 : http://support.microsoft.com/kb/304625
--> UTF-8 환경하 에서 AJAX 오류 수정 내용 등록해두었음..
작성: freeimage.kr 김성대 09.01.06
서버환경,홈페이지소스, 사용자 모든환경이 UTF 면 문제는 없지만
보통은 서버는 EUC-KR 환경인경우가 많다.. 그러므로 그누보드 UTF-8 버젼을 아무리 깔아도
현 상태로는 AJAX,화면오류메시지 이상등의 문제가 발생된다. (2009.01.06현재)
해결책은 다음과 같다.
1. 홈페이지소스는 UTF-8이어야 한다.. (당연하지만 실수하는경우가 많다.)
보통 edit-plus 등 편집기로 작업한뒤 저장하면 ANSI 로 저장되는데 UTF-8로 저장해야한다.
2. AJAX로 넘길때는 다음 인코딩 코드를 넣어주는것이 좋다. (필수적인것은 아니지만.. 추천함)
encoding: 'utf-8',
3. AJAX 에서 화면을 출력할때는 소스상단에 다음과 같은 라인이 포함되어야 한다.
이게 포함되지 않으면 windows 오류 메시자가 나온다. (최악의 경우 브라우즈가 다운되는경우도 있다.)
header("Content-type: text/html;charset=UTF-8");
그누보드 아이디확인코드는 다음과 같이 바꾸여야 한다//
1. skin/memner/basic/ajax_register_form.js
// 회원아이디 검사
function reg_mb_id_check() {
var url = member_skin_path + "/ajax_mb_id_check.php";
var para = "reg_mb_id="+encodeURIComponent($F('reg_mb_id'));
var myAjax = new Ajax.Request(
url,
{
method: 'post',
// 주소창 보안 방지 javascript:void(document.fregisterform.mb_id_enabled.value='000');
// 동기식 (폼전송시 입력값이 바른지 검사한 후 mb_id_enabled 를 체크하기 때문)
asynchronous: false,
parameters: para,
onComplete: return_reg_mb_id_check
});
}
이 함수는 다음으로 대치되어야 한다.
(encodeURIComponent 함수는 없어도 된다.)
// 회원아이디 검사
function reg_mb_id_check() {
var url = member_skin_path + "/ajax_mb_id_check.php";
var myAjax = new Ajax.Request(
url,
{
method: 'post',
// 주소창 보안 방지 javascript:void(document.fregisterform.mb_id_enabled.value='000');
// 동기식 (폼전송시 입력값이 바른지 검사한 후 mb_id_enabled 를 체크하기 때문)
asynchronous: false,
parameters: { reg_mb_id : $F('reg_mb_id') },
encoding: 'utf-8',
onComplete: return_reg_mb_id_check
});
}
2. ajax_mb_id_check.php 파일의 상단에는 UTF-8 헤드가 추가되어야한다.
include_once("_common.php");
header("Content-type: text/html;charset=UTF-8"); // 이줄 추가..
// 이줄을 추가함으로서 한글을 전송메시지로 사용해도 문제가 없다..
3. 그외 javascript의 alert 함수를 사용하기전에
Content-type: text/html;charset=UTF-8 를 출력해야하는데.
현재 버젼에는 전부 적용되어 있는듯하다. 혹시 alert 메시지가 깨어져 나온다면..
다음과 같이 charset 을 추가해주면된다..
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>alert('$msg');";
Ajax를 이용해서 개발한 프로그램을 이용하는데..
어느날부턴가 C00CE56E 오류가 발생하기 시작했다.
알고봤더니 IE7을 이용하면서부터 발생한 문제로
오류가 발생한 이유는 다름아는 케릭터셋의 불분명한 명명 ㅡㅡ;
euc_kr, cp949, utf... 등으로 지정되어 있었던 것이다.
이것을 모두다 korean으로 지정해주고나서 오류가 사라졌다.
혹시라도 위와같은 오류가 발생한다면 charset을 확인해 보시라~
참고사이트 : http://support.microsoft.com/kb/304625
--> UTF-8 환경하 에서 AJAX 오류 수정 내용 등록해두었음..
작성: freeimage.kr 김성대 09.01.06
서버환경,홈페이지소스, 사용자 모든환경이 UTF 면 문제는 없지만
보통은 서버는 EUC-KR 환경인경우가 많다.. 그러므로 그누보드 UTF-8 버젼을 아무리 깔아도
현 상태로는 AJAX,화면오류메시지 이상등의 문제가 발생된다. (2009.01.06현재)
해결책은 다음과 같다.
1. 홈페이지소스는 UTF-8이어야 한다.. (당연하지만 실수하는경우가 많다.)
보통 edit-plus 등 편집기로 작업한뒤 저장하면 ANSI 로 저장되는데 UTF-8로 저장해야한다.
2. AJAX로 넘길때는 다음 인코딩 코드를 넣어주는것이 좋다. (필수적인것은 아니지만.. 추천함)
encoding: 'utf-8',
3. AJAX 에서 화면을 출력할때는 소스상단에 다음과 같은 라인이 포함되어야 한다.
이게 포함되지 않으면 windows 오류 메시자가 나온다. (최악의 경우 브라우즈가 다운되는경우도 있다.)
header("Content-type: text/html;charset=UTF-8");
그누보드 아이디확인코드는 다음과 같이 바꾸여야 한다//
1. skin/memner/basic/ajax_register_form.js
// 회원아이디 검사
function reg_mb_id_check() {
var url = member_skin_path + "/ajax_mb_id_check.php";
var para = "reg_mb_id="+encodeURIComponent($F('reg_mb_id'));
var myAjax = new Ajax.Request(
url,
{
method: 'post',
// 주소창 보안 방지 javascript:void(document.fregisterform.mb_id_enabled.value='000');
// 동기식 (폼전송시 입력값이 바른지 검사한 후 mb_id_enabled 를 체크하기 때문)
asynchronous: false,
parameters: para,
onComplete: return_reg_mb_id_check
});
}
이 함수는 다음으로 대치되어야 한다.
(encodeURIComponent 함수는 없어도 된다.)
// 회원아이디 검사
function reg_mb_id_check() {
var url = member_skin_path + "/ajax_mb_id_check.php";
var myAjax = new Ajax.Request(
url,
{
method: 'post',
// 주소창 보안 방지 javascript:void(document.fregisterform.mb_id_enabled.value='000');
// 동기식 (폼전송시 입력값이 바른지 검사한 후 mb_id_enabled 를 체크하기 때문)
asynchronous: false,
parameters: { reg_mb_id : $F('reg_mb_id') },
encoding: 'utf-8',
onComplete: return_reg_mb_id_check
});
}
2. ajax_mb_id_check.php 파일의 상단에는 UTF-8 헤드가 추가되어야한다.
include_once("_common.php");
header("Content-type: text/html;charset=UTF-8"); // 이줄 추가..
// 이줄을 추가함으로서 한글을 전송메시지로 사용해도 문제가 없다..
3. 그외 javascript의 alert 함수를 사용하기전에
Content-type: text/html;charset=UTF-8 를 출력해야하는데.
현재 버젼에는 전부 적용되어 있는듯하다. 혹시 alert 메시지가 깨어져 나온다면..
다음과 같이 charset 을 추가해주면된다..
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script language='javascript'>alert('$msg');";
관련링크
댓글목록
등록된 댓글이 없습니다.