>웹 프론트엔드 >JS 튜토리얼 >jquery 잘못된 코드 및 contentType 속성 설정 문제

jquery 잘못된 코드 및 contentType 속성 설정 문제

WBOY
WBOY원래의
2016-05-16 17:44:23993검색

오늘은 심심해서 두통을 유발하는 Jquery 왜곡 문제 등 과거에 남겨진 문제를 해결하고 싶습니다. 사실 이 분야에는 이미 많은 기사가 있지만 그 중 다양한 문제를 포괄적으로 해결하는 기사는 거의 없습니다. 오늘은 저 자신과 모든 사람의 편의를 위해 요약하겠습니다.

이유는 매우 간단합니다 사실 그의 중국어 문자가 왜곡된 이유는 contentType이 인코딩을 지정하지 않았기 때문입니다. Jquery 버전마다 이 위치에 대한 설정이 다릅니다. jquery-1.6.1과 jquery-1.8.3은 정의가 다릅니다.

해결책: jquery-1.6.1 파일에서 'contentType'을 검색한 다음 application/x-www-form-urlencoded 뒤에 charset=UTF-8을 추가하고 마지막으로 contentType: "application/x-www-form-urlencoded; charset=UTF-8"로 변경합니다.
이렇게 하면 포스트 방식으로 제출한 후 글자가 깨지는 문제를 완벽하게 해결할 수 있습니다.

그래도 문자가 깨져 있는 경우 수신한 페이지의 인코딩에 문제가 있다고 할 수 있습니다. 이는 반환된 responseText를 처리할 때 비동기 개체 XMLHttpRequest가 UTF-8 인코딩을 디코딩하기 때문입니다. . 따라서 post 방식을 사용한다면 반드시 이 페이지를 저장하고 페이지 파일의 인코딩을 UTF-8로 변경해야 합니다(기억해주세요).
jquery 잘못된 코드 및 contentType 속성 설정 문제
수정 전에는 FROM 폼 데이터 전체가 모두 깨졌는데, 이런 경우에는 위의 방법을 따르면 쉽게 해결할 수 있습니다.

다음과 같은 이유가 있을 수 있습니다
:
1. HTML의 인코딩이 균일하지 않습니다. 예를 들어 해당 페이지에서는 GB2312를 사용하고 있는데 JQuery는 잘 지원되지 않는 것 같습니다. 이전에는 항상 UTF-8을 사용해왔지만 한 번도 발견한 적이 없습니다.
2. 파일의 인코딩은 중국어 간체 버전으로 저장한 기본 텍스트 형식 파일입니다. 운영 체제는 GB2312입니다. 가장 간단한 해결 방법은 파일을 UTF-8 형식으로 변경하는 것입니다. 그러면 잘못된 문자가 표시되지 않도록 JS 이스케이프를 사용하여 제출된 중국어 텍스트를 처리할 수 있습니다. 예:




코드 복사

url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveComment&CommNickName =" escape( CommNickName.val()) "&CommContent=" escape(CommContent.val()) "&GuideID=" GuideID.val() "&ScoreLogType=<%=ScoreLogType %>",
성공:함수 (결과){
alert(results.message)


--------------- ------- ----------------- --
해결책은 js의 인코딩 함수 encodeURIComponent(string)를 사용하여 중국어 "Wang Xiaoming"를 "Wang Xiaoming"로 인코딩하면 괜찮을 것입니다.
그런데 URIEncoding=UTF-8 내 톰캣 아래
------------------------------- ---- ---------------------
오늘 jquery를 사용하여 사용자 이름을 감지할 때, 영어 및 숫자 사용자의 경우 이름 감지는 정확하지만 중국어의 경우 감지가 잘못되었습니다. 한동안 온라인으로 검색한 결과 왜곡된 코드 문제입니다.
1. Ajax에 데이터 제출이 있는 한 페이지 인코딩이 utf-8이 아닌 경우 제출된 데이터를 인코딩해야 합니다. js의 인코딩 기능은 escape()
2. 데이터를 수신한 후 디코딩합니다. 그런 다음 인코딩 전 데이터에 대해 해당 처리를 수행합니다
3. 클라이언트로 반환된 후 디코딩
4. 데이터가 제출되지 않고 서버에서 직접 데이터를 얻은 경우 설정하면 됩니다. 인코딩 및 디코딩 없이 서버 페이지에서 직접 Response.Charset="gb2312"
vbscript는 js의 escape() 및 unescape() 함수 프로그램 코드에 해당합니다
------------ ----------------- --------------------------------- -----------------

다음 처리 방법으로 해결됩니다
:
다음과 같은 경우 매개변수 가격이름="encodeURI(priceName)"을 인코딩합니다. 매개변수를 전달하거나 encodeURIComponent();를 사용할 수 있습니다.
서버 측에서는 이 작업을 수행할 필요가 없습니다. 기타 처리: String PriceName = request.getParameter("priceName");
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.