>  기사  >  웹 프론트엔드  >  URL 값 전송_javascript 기술의 중국어 왜곡 문제를 해결하는 JS 대체 방법

URL 값 전송_javascript 기술의 중국어 왜곡 문제를 해결하는 JS 대체 방법

WBOY
WBOY원래의
2016-05-16 17:37:471002검색

웹 애플리케이션을 개발할 때 프런트엔드와 백엔드 간의 데이터 상호 작용이 필요한 경우가 많습니다. 때로는 프런트엔드의 중국어 데이터를 URL을 통해 백엔드에 전달해야 할 수도 있지만 이때는 표준 문자가 Java에서 네트워크 전송에 사용되는 세트는 ISO-8859-1이므로 백그라운드에서 request.getParameter("message")를 사용하여 전면에서 중국어를 전송하면 여전히 ISO-8859-1 문자 세트를 얻게 됩니다. 많은 사람들이 해결 방법은 전경에서 중국어를 전송하기 전에 디코딩한 다음 백그라운드에서 디코딩하고 변환하는 것입니다. 이를 해결할 수 있는 다른 방법은 없을까요?

잠시 고민을 했는데요. 왜 양식은 중국어 전송은 되는데 URL 방식은 사용할 수 없는 걸까요? 문제를 해결하려면 URL을 사용하여 값을 전달해야 합니까? 여기서는 동적 형태를 생각했는데, 이를 사용하여 문제를 해결해 보는 것은 어떨까요? 예는 다음과 같습니다.

다음과 같은 적용 시나리오가 있다고 가정합니다. KPI 목록 페이지에서 각 KPI에는 조기 경고 데이터를 생성하는 기능이 있습니다. 버튼을 클릭하여 목록의 각 KPI에 대한 데이터를 생성하면 KPI의 ID와 이름이 표시됩니다. 백그라운드로 전달해야 합니다.

프론트엔드에 해당하는 js 메소드:

URL을 사용하여 값 전달:

코드 복사 코드는 다음과 같습니다.

함수 createData(indexId,indexName){
                                                                                         > );

      }


이 방법을 사용하면 대부분의 KPI 이름이 중국어로 되어 있기 때문에 백그라운드에서 수신되는 값이 깨져야 합니다.

이 문제는 다음 양식을 동적으로 생성하여 해결할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

function createData(indexId,indexName){
var urlStr = "catalogAction.do?action=CreateIndexData&PcatalogId=&catalogId=" indexId "&random =" Math .random();
var f= document.createElement('form');
f.action = urlStr;
f.method = 'post';
document.body . AppendChild(f );
var temp=document.createElement('input');
temp.type= 'hidden';
temp.value=indexName; name='catalogName';
                   f .appendChild(temp); 
                  f.submit(); 한자가 왜곡되어 배경으로 전송되는 문제를 쉽게 해결합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.