Dieses Mal werde ich Ihnen die Vorsichtsmaßnahmen für die Verwendung von Nginx zur Vermeidung domänenübergreifender Ajax-Anfragen und die Verwendung von Nginx zur Vermeidung domänenübergreifender Ajax-Anfragen vorstellen. Das Folgende ist ein praktischer Fall, werfen wir einen Blick darauf.
Nginx + Tomcat auf dem Server, wobei Nginx auf Port 80 und Tomcat auf Port 8080 lauscht.
Da ich mit dem Front-End nicht vertraut bin, dachte ich, dass die Verwendung von Ajax die Notwendigkeit eines Rückrufs überflüssig machen würde. Meine Klassenkameraden am Front-End sagten jedoch, dass ein Rückruf nicht erforderlich sei, es sei denn, er sei domänenübergreifend und bat mich, es dem zurückgegebenen JSON hinzuzufügen. Aber ich habe gerade die grundlegendste Verwendung von spring-mvc gelernt und weiß nicht, wie man einen Rückruf hinzufügt
Ich habe online einen machbaren Code gefunden, der so aussieht:
@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(); } }
Allerdings sind diese Änderungen für mich nervig, da ich zu viele URL-Zuordnungen habe und die Kosten für Änderungen zu hoch sind.
Also habe ich klugerweise über Nginx nachgedacht. Wird dieser Typ nicht nur als Reverse-Proxy verwendet? Es ist so schlau wie ich
Mit dieser Idee ist es ganz einfach. Fügen Sie dem Server, der Port 80 überwacht, direkt einen Standort hinzu:
location /myApp { proxy_pass http://localhost:8080/myApp; }
Nginx neu laden:
{NGINX_HOME}/sbin/nginx -s reload
Ich glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall gelesen haben In diesem Artikel finden Sie weitere spannende Inhalte. Beachten Sie bitte andere verwandte Artikel auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So verwenden Sie readyState und Status in Ajax
So verwenden Sie get und post in Ajax Was Probleme auftreten und wie man mit ihnen umgeht
Das obige ist der detaillierte Inhalt vonVerwenden Sie Nginx, um domänenübergreifende Ajax-Anfragen zu vermeiden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!