6월 2016

SOP(Same-origin Policy)

A 도메인에서 B 도메인으로 AJAX 호출 시 오류가 발생한다. 이는 JAVASCRIPT 의 보안 정책 때문이라고 한다. 위 정책의 이름은 SOP(Same-origin Policy). 다른 도메인에 대해 허가를 하는 경우 Servlet(또는 컨트롤러)에 아래와 같은 코드를 추가한다. response.setHeader(“Access-Control-Allow-Origin”, “A 도메인”); response.setHeader(“Access-Control-Allow-Headers”, “X-Requested-With”); A 도메인에 대해 허가 하겠다는 의미! 아직 테스트는 안해봤다.

Not an ISO 8859-1 character:

요청이 들어오면 결과값을 JSON으로 보내주어야 하는 API를 만들고 있다. ServletOutputStream os = response.getOutputStream(); os.print(json); 위와 같이 했으나, Not an ISO 8859-1 character: 정 이런 오류가 발생했다. response.setContentType(“text/plain; charset=UTF-8”); response.setCharacterEncoding(“UTF-8”); 을 추가해줘도 여전했다. response.setContentType(“text/plain; charset=UTF-8”); response.setCharacterEncoding(“UTF-8”); PrintWriter out = response.getWriter(); out.write(json); 로 수정했다.

ASCII 코드 NULL Character 치환.

어처구니 없는 일이 일어났다. 디자이너분이 퍼블리싱된 것을 보내줬고 나는 갖다 붙였다. 그런데 왠 런타임익셉션이 딱!! (Unicode: 0x0) 가 문제였고.. 파싱할 수 없는 눈에안보이는 XML 문자가 들어있구나를 알게됐다. ASCII 코드표를 보니 0x0은 NUL Character를 의미한다. 저걸 어떻게 없애나 하고 구글링을 하니 바로 나온다. 정규식을 이용해 \x00 을 치환하란다. 공백으로 치환하니까 해결됐다. 저게 왜 들어가있는지는 알 수 Continue reading ASCII 코드 NULL Character 치환.