Cet article présente principalement des informations pertinentes sur la façon d'utiliser le proxy inverse Nginx pour éviter les requêtes inter-domaines ajax. Il est très bon et a une valeur de référence. Les amis dans le besoin peuvent s'y référer
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 intelligemment 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
Puis mettez le http://site précédent : Le La requête inter-domaine de 8080/myApp devient une requête non-cross-domaine de http://site/myApp.
Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.
Articles connexes :
Analyse approfondie de la mise en œuvre par Nginx des problèmes de requêtes inter-domaines AJAX
Les clics Ajax chargent les données en continu list (tutoriel graphique)
Ajax+Struts2 implémente la fonction de vérification du code de vérification (tutoriel graphique)
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!