Maison  >  Article  >  interface Web  >  Utilisez Nginx pour éviter les requêtes inter-domaines ajax

Utilisez Nginx pour éviter les requêtes inter-domaines ajax

php中世界最好的语言
php中世界最好的语言original
2018-04-04 11:52:421580parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn