Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie Nginx, um domänenübergreifende Ajax-Anfragen zu vermeiden

Verwenden Sie Nginx, um domänenübergreifende Ajax-Anfragen zu vermeiden

php中世界最好的语言
php中世界最好的语言Original
2018-04-04 11:52:421555Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn