Cette fois, je vais vous apporter les précautions pour utiliser Nginx pour éviter les requêtes inter-domaines ajax et pour utiliser Nginx pour éviter les requêtes inter-domaines ajax. Ce qui suit est un cas pratique, jetons un coup d'œil.
nginx + tomcat sur le serveur, où nginx écoute le port 80 et tomcat écoute le port 8080.
Parce que je ne suis pas familier avec le front-end, j'ai pensé que l'utilisation d'ajax éliminerait le besoin de rappel. Cependant, mes camarades de classe du front-end ont dit que le rappel n'était pas nécessaire à moins qu'il ne soit inter-domaines. et m'a demandé de l'ajouter au json renvoyé. Mais je viens d'apprendre l'utilisation la plus basique de spring-mvc, et je ne sais pas comment ajouter un rappel
J'ai trouvé un code réalisable en ligne, qui ressemble à ceci :
@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(); } }
Cependant, les modifications sont pénibles pour moi car j'ai trop de mappages d'URL et le coût des modifications est trop élevé.
Alors j'ai été intelligent et j'ai pensé à nginx. Ce type n'est-il pas simplement utilisé pour le proxy inverse ? C’est aussi malin que moi
Avec cette idée, c’est facile à faire. Ajoutez directement un emplacement au serveur en écoute sur le port 80 :
location /myApp { proxy_pass http://localhost:8080/myApp; }
Rechargez nginx :
{NGINX_HOME}/sbin/nginx -s reload
Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article , pour un contenu plus passionnant, veuillez prêter attention aux autres articles connexes sur le site Web php chinois !
Lecture recommandée :
Comment utiliser readyState et status en Ajax
Comment utiliser get et post en Ajax Quoi des problèmes sont rencontrés et comment les résoudre
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!