서버 측에서 JSON (ESAPI 인코더 사용)을 인코딩했습니다. 그러면 클라이언트는 빈 필드를 검색하고 추가 처리를 수행합니다. x22Company \의 X22 \ x7B \ x22name \ X22 \ x3A \ x22Sameer \ X22 \ x22company \ X22 \ x3A \ 서버 측ESAPI 인코더를 사용하여 JSON 인코딩
JSONBean bean=new JSONBean();
//populate the bean
Gson gson=new Gson();
String jsonString = gson.toJson(bean);
String JSEscapedStr=ESAPI.encoder().encodeForJavaScript(jsonString);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(JSEscapedStr);
인코딩 JSON 문자열
에서
\ x22designation \ X22 \ x3A \ x22Developer \ X22 \ x7D 나는 또한 response.se를 사용하여 시도var JSONObj=JSON.parse(data);
var name=JSONObj["name"];
var company=JSONObj["company"];
var designation=JSONObj["designation"];
//process these variable in javascript
클라이언트 측에
tContentType ("plain/text"); 또한 서버 측에서도 작동하지 않습니다.
오류
구문 에러 : JSON.parse : 1 호선 열심히 코드 JSON 문자열은 다음이
를 작동하면 콘텐츠 형식이 "일반/텍스트"인 JSON 데이터의 열 1에서 예상치 못한 문자
var jsonEncoded="\x7B\x22name\x22\x3A\x22Sameer\x22,\x22company\x22\x3A\x22Company\x22,\x22designation\x22\x3A\x22Developer\x22\x7D";
var JSONObj=JSON.parse(jsonEncoded);
console.log(JSONObj);
var name=JSONObj["name"];
var company=JSONObj["company"];
var designation=JSONObj["designation"];
console.log(name);
console.log(company);
console.log(designation);
Firefox의 TamperData 확장과 같은 프록시 도구를 구하거나 OWASP의 ZAP 도구 사본을 구해서 서버의 응답을 트랩하고 여기에 추가하십시오. – avgvstvs
질문에 답변 한 경우 답변을 게시하거나 요청 된 정보를 친절하게 제공하십시오. – avgvstvs