잘못된 중국어 매개변수를 전송하기 위한 jQuery 요청에 대한 솔루션: 먼저 매개변수를 GET 모드에서 직접 보낸 다음 트랜스코딩합니다. 코드는 [String center = new String(param.getBytes("iso8859-1"), "utf- 8")].
이 튜토리얼의 운영 환경: windows7 시스템, jquery3.2.1 버전, Dell G3 컴퓨터.
잘못된 중국어 매개변수를 전송하기 위한 jQuery 요청에 대한 솔루션:
현재 작업 중인 요구에는 계단식 쿼리가 포함되어 있습니다. 상위 항목의 내용을 기반으로 하위 수준 드롭다운 상자 목록을 쿼리해야 합니다. -level 드롭다운 상자. 캐스케이드에는 두 개의 레벨만 있고 테이블의 데이터는 나중에 거의 변경되지 않으므로 내가 디자인한 테이블은 중국어로 직접 저장됩니다.
메뉴는 다음과 같습니다.
코드는 다음과 같습니다.
var url = "${basePath}/institutionConfig/getDepartmentByCenter.do?param=" + center; $.get(url, function (data) { var list = data.data; for (var i = 0; i < list.length; i++) { departmentSelector += "<option value='" + list[i] + "' "; if (department && list[i] == department) { departmentSelector += "selected='selected'"; } departmentSelector += ">" + list[i] + "</option>"; } $("#accountDepartmentAdd").html(departmentSelector); });
저는 $.get(url, callback)
를 사용하여 백그라운드로 요청을 보냅니다. GET 모드에서 매개변수가 직접 전송되므로 브라우저는 매개변수를 URL 인코딩으로 인코딩합니다. , 및 배경 획득된 매개변수는 다음과 같습니다.
수신된 매개변수가 잘못된 코드임을 알 수 있습니다. 그래서 추가 처리, 즉 트랜스코딩을 수행했습니다.
String center = new String(param.getBytes("iso8859-1"), "utf-8");
이렇게 해서 수신된 텍스트는 중국어입니다.
그런데 이 접근 방식은 실제로 테스트 환경에서 오류를 보고했습니다. 이유를 분석한 결과 테스트 환경에서 올바른 중국어를 수신한 것으로 나타났으나 트랜스코딩을 한 결과 잘못된 것으로 나타났습니다. 따라서 해결책은 페이지 요청을 변경하는 것입니다. GET 메소드로 인한 매개변수가 인코딩되므로 POST 요청으로 변경됩니다. POST 요청은 원본 데이터를 제출합니다.
var url = "${basePath}/institutionConfig/getDepartmentByCenter.do"; $.ajax({ url: url, data: {"param": center}, dataType: "json", type: "POST", success: function (data) { var list = data.data; for (var i = 0; i < list.length; i++) { departmentSelector += "<option value='" + list[i] + "' "; if (department && list[i] == department) { departmentSelector += "selected='selected'"; } departmentSelector += ">" + list[i] + "</option>"; } $("#accountDepartmentAdd").html(departmentSelector); } });
관련 무료 학습 권장사항: javascript(동영상)
위 내용은 jQuery가 잘못된 중국어 매개변수를 전송하라는 요청을 보내는 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!