ajax 크로스 도 메 인 요청 을 피 하려 면 Nginx 역방향 대 리 를 사용 하 십시오.

서버 에 nginx+tomcat,그 중에서 nginx 감청 80 포트,tomcat 감청 8080 포트.
전단 에 익숙 하지 않 기 때문에 ajax 를 사용 하면 콜백 이 필요 하지 않 을 것 이 라 고 생각 했 습 니 다.그러나 전단 의 친구 들 이 도 메 인 을 뛰 어 넘 지 않 는 상황 에서 콜백 이 필요 하지 않 습 니 다.돌아 오 는 json 에 추가 하 라 고 했 습 니 다.그러나 나 는 방금 가장 기본 적 인 spring-mvc 용법 을 배 웠 는데,어떻게 콜백 을 더 해 야 할 지 전혀 몰 랐 다.
인터넷 에서 실행 가능 한 코드 를 찾 으 면 이런 모습 이 많 지 않다.

@RequestMapping(method=RequestMethod.GET,value="getProjectStatusList",produces="text/html;charset=UTF-8")
@ResponseBody
public String getProjectStatusList(HttpServletRequest request, 
HttpServletResponse response){
Map<String,Object> map = new HashMap<String,Object>();
try{
String callback = request.getParameter("callback");
//System.out.println("token:"+request.getHeader("token"));
List<String> list = ss.getProjectStatusList();
map.put("status", "success");
map.put("data", list);
ObjectMapper mapper = new ObjectMapper();
//       。。。
String result = callback+"("+mapper.writeValueAsString(map)+")";
//String result = mapper.writeValueAsString(map);
return result;
}catch(Exception e){
JSONObject jo = new JSONObject();
jo.put("status", "fail");
jo.put("data", e.getMessage());
return jo.toString();
}
}
그러나 이렇게 바 꾸 는 것 은 나 에 게 있어 서 정말 뼈 를 상하 게 하 는 것 이다.왜냐하면 나 는 URL 맵 이 너무 많 고 수정 하 는 비용 이 너무 많 기 때문이다.
그래서 슬기 로 운 내 가 nginx 를 생각 했 어.이 녀석 이 역방향 대 리 를 하 러 온 거 아니 야?정말 기지 가 넘 쳐 요.
이런 생각 이 있 으 면 하기 가 간단 하 다.80 포트 를 감청 하 는 server 에 location 을 직접 추가 합 니 다.

location /myApp {
proxy_pass http://localhost:8080/myApp;
}
nginx 다시 불 러 오기:

{NGINX_HOME}/sbin/nginx -s reload
그리고 그 전에...http://site:8080/myApp 의 크로스 요청 이http://site/myApp 의 비 크로스 요청 입 니 다.
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Nginx 역방향 대 리 를 사용 하여 ajax 크로스 도 메 인 요청 을 피 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기