JQuery AJAX 중국어 난 장 판 솔 루 션 제출
1)Firefox 에서 처리 페이지 의 인 코딩 은 gb 2312 이 고 제출 데 이 터 는 문제 가 없 으 며 중국 어 는 정확하게 해석 할 수 있 습 니 다.
2)IE8 에서 처리 페이지 의 인 코딩 은 gb 2312 이 고 중국어 데 이 터 를 제출 하 는 데 오류 가 발생 합 니 다.
$.post 든$.ajax 든$.ajax Submit(Form 플러그 인 에서 온 것)이 든 이전 UTF-8 인 코딩 사이트 에 서 는 아무런 문제 가 없 었 습 니 다.데 이 터 를 제출 한 웹 페이지 의 인 코딩 형식 때 문인 것 같 습 니 다.어쨌든 브 라 우 저 간 에 차이 가 있 으 니 HTTP 패키지 로 볼 때 문제 가 있 는 것 같 습 니 다.
Fiddle 을 열 고 각각 Firefox 와 IE 로 AJAX 제출(사용자 로그 인 예)을 하고 그들의 HTTP 헤드 를 검사 한 결과
1)두 브 라 우 저가 제출 한 Form 데 이 터 는 모두 UTF-8 인 코딩 을 한 것 으로 다음 그림 과 같다.
분석:JQuery 의 AJAX 제출 은 제출 할 데 이 터 를 인 코딩 하고 encodeURIComponent 를 사용 하여 js 에서 데 이 터 를 처리 합 니 다.따라서 Firefox 나 IE 를 막론하고 제출 한 데 이 터 는 모두 일치 하 며 UTF-8 인 코딩 후의 데이터 입 니 다.
2)Header 를 살 펴 보면 Entity 의 Content-Type 에 차이 가 있 음 을 알 수 있다.
Firefox 에서 Content-type 은 utf-8 로 문자 집합 을 지정 합 니 다.
IE8 에 서 는 문자 집합 이 지정 되 어 있 지 않 습 니 다.
분석:기본적으로 AJAX 의 비동기 적 으로 제출 한 문자 인 코딩 은 웹 페이지 자체 와 일치 해 야 합 니 다.즉,서버 측 이 표 시 된 charset 지정 을 발견 하지 못 한 상태 에서 gb 2312 를 사용 하여 데 이 터 를 디 코딩 해 야 합 니 다(그러나 데 이 터 는 제출 전에 UTF-8 에 의 해 디 코딩 되 었 습 니 다).이것 이 바로 IE 에서 어 지 러 운 코드 가 발생 하 는 원인 입 니 다.Firefox 에서...브 라 우 저 는 AJAX 데 이 터 를 제출 할 때 charset 의 디 스 플레이 지정 을 추가 하여 서버 측 에서 UTF-8 로 데 이 터 를 디 코딩 합 니 다(올 바른 디 코딩).
추정:이 중국어 코드 문 제 를 해결 하려 면 지정 한 charset 를 AJAX 비동기 로 제출 해 야 합 니 다!
바로 JQuery 의 AJAX 도구 함수 에 대한 설명 을 찾 아 보 니 options 에 지정 한 content-type 의 인자 가 있 습 니 다.제 AJAX 코드 에
jQuery(form).ajaxSubmit({
url: "ajax.aspx?a=memberlogin",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: showLoginResponse
});
테스트,OK!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AJAX+JAVA 사용자 로그인 인증 구현 코드수요 aax 비동기 리셋 페이지를 통해 사용자가 입력한 계정 비밀번호가 데이터베이스에 있는지 확인합니다. 기술 창고 JSP+Servlet+Oracle 구체적인 코드 JSP 섹션: 여기에는 Dao층을 사용하지 않고 s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.