[JAVASCRIPT] 자바스크립트 AJAX 외부 통신 크로스 도메인 해결 - CORS(Cross Origin Resource Sharing)
[JAVASCRIPT] 자바스크립트 AJAX 외부 통신 크로스 도메인 해결 - CORS(Cross Origin Resource Sharing)
---------------------------------------- transport.jsp -----------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.io., java.net."%>
<%
// 요청 인코딩 변경
// request.setCharacterEncoding("utf-8");
try {
String paramUrl = request.getParameter("url");
// URL infoURL = new URL(paramUrl);
URL infoURL = new URL("www.naver.com");
InputStream inputStream = infoURL.openStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
StringBuffer sb = new StringBuffer();
int readByte;
while ((readByte = inputStreamReader.read()) != -1) {
sb.append((char) readByte);
}
inputStreamReader.close();
inputStream.close();
out.clearBuffer();
// 응답 ContentType 세팅
// response.setContentType("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8; charset=utf-8");
out.print(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
%>
---------------------------------------- ajax호출 하여 transport.jsp 사용 ---------------------------
$.ajax({
type: "post",
url: ../transport.jsp?url=www.naver.com",
dataType: "text",
success: function(data) {
console.log(data)
}
});
---------------------------------------- transport.java -----------------------------------------
@RequestMapping("/")
@Controller
public class MainController {
@RequestMapping(value="/transport.json", method=RequestMethod.POST)
@ResponseBody
public String transport(HttpServletRequest request, HttpServletResponse response){
String paramUrl = request.getParameter("url");
String data = "";
try {
URL infoURL = new URL(paramUrl);
InputStream inputStream = infoURL.openStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
StringBuffer sb = new StringBuffer();
int readByte;
while ((readByte = inputStreamReader.read()) != -1) {
sb.append((char) readByte);
}
inputStreamReader.close();
inputStream.close();
data = sb.toString();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return data;
}
}
---------------------------------------- ajax호출 하여 transport.jsp 사용 ---------------------------
$.ajax({
type: "post",
url: ../transport.do?url=www.naver.com",
dataType: "text",
success: function(data) {
console.log(data)
}
});
끗!@#!@#!@#