이 글에서는 Ajax에서 전달한 데이터에 특수 문자가 포함된 경우 해결 방법을 소개합니다. 필요하신 분들은 참고하시면 됩니다
문제 설명
은 다음과 같습니다. 특수 문자가 포함된 텍스트를 JSON으로 캡슐화하는 방법입니다. Ajax Pass,
var data = {"Id": id, "text": text};
백그라운드에서는 데이터 수신이 불가능합니다.
Solution
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
을 다음으로 바꾸세요:
req.setRequestHeader("Content-type", "application/json; charset=utf-8");
백그라운드에서 데이터 수신:
//进行json数据的接收 StringBuilder sb = new StringBuilder(); BufferedReader br = request.getReader(); char[] buff = new char[10000]; int len; while((len = br.read(buff)) != -1){ sb.append(buff, 0, len); } String mess = sb.toString(); //将字符串转换为JSON对象 JSONObject jsonObject=new JSONObject(mess); //获取其中的值 jsonObject.getInt("Id"); //含有特殊字符的文本需要先进行转码 URLDecoder.decode(jsonObject.getString("text"), "UTF-8"));
이렇게 하면 텍스트를 올바르게 받을 수 있습니다~
위 내용은 제가 모두를 위해 편집한 것입니다. 앞으로는 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
AJAX 페이징 효과는 구현이 간단합니다(그래픽 튜토리얼)
Ajax 또는 Easyui와 같은 프레임워크를 사용하는 경우 Json-lib 처리 솔루션(그래픽 튜토리얼)
위 내용은 Ajax가 특수 문자를 사용하여 데이터를 전달하는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!