1 중국 쓰레기 문제
● POST 왜곡 제출
왜곡 이유 : 모든 아약스 브라우저 요청 매개 변수가 UTF-8, 서버가 너무 왜곡, 디코딩 기본 ISO-8859-1을 사용하여 인코딩됩니다.
해결 방법 : 서버가 코딩 매개 변수 구문 분석하기 전에 요청을받습니다.
request.setCharacterEncoding ( "UTF-8");
● 왜곡 제출 GET
왜곡 이유 : 요청 IE를 송신하는 경우, 왜곡을 디코딩하는 것은 발생하는 경우 서버 ISO-8859이 사용될 때 다른 브라우저에서 기본적으로 UTF-8을 사용하지만, 기본적으로 요청 파라미터를 인코딩하기 위해 사용 GBK 문자 세트. .
해결 방법 : 브라우저 요청을 전송하기 전에에 encodeURI를 사용하여 첫 번째 URL () 코딩. 에 encodeURI 중국에서 요청 UTF-8을 사용하여 인코딩 다룰 것이다.
'XXX에 이름 = 장'var에 URI =;
xhr.open는 (사실 encodedURI (URI)를 '수');
트랜스 코딩 서버 측 :
문자열 이름 = request.getParameter ( "이름");
이름 = 새로운 문자열 (name.getBytes ( "ISO-8859-1"), "UTF-8");
2 캐시 문제
다음과 같이 다른 브라우저는 같은 주소에 대한 처리 방식을 요청 :
크롬 재전송 요청
파이어 폭스 재전송 요청
IE는 요청을 보내지 않습니다
GET 요청을 보낼 때 주소를 액세스 여부를 브라우저에서 제공 IE 아약스 객체는, 먼저, 확인합니다 주소에 액세스 할 경우, 브라우저는 요청을 전송하지 않습니다,하지만 데이터의 내용은 이전에 브라우저 캐시를 촬영.
브라우저 캐싱 솔루션 :
요청의 어드레스는 시스템 시간이나, 예를 들면 난수 후에 첨가된다 :
xhr.open (+ 새로운 날짜 () 'load.do?r='을 '얻을'다음 getTime ()를 사실.);
또는
xhr.open ( '수' 'load.do?r='+ 인 Math.random ());