Home > Web Front-end > JS Tutorial > body text

Use Nginx to avoid ajax cross-domain requests

php中世界最好的语言
Release: 2018-04-04 11:52:42
Original
1578 people have browsed it

This time I will bring you how to use Nginx to avoid ajax cross-domain requests and use Nginx to avoid ajax cross-domain requests. What are the precautions? Here are actual cases, let’s take a look.

nginx + tomcat on the server, where nginx listens to port 80 and tomcat listens to port 8080.

Because I am not familiar with the front-end, I thought that using ajax would eliminate the need for callback. However, the front-end classmates said that callback is not needed unless it is cross-domain, and asked me to add it to the returned json. But I just learned the most basic usage of spring-mvc, and I don’t know how to add callback

I found some feasible code online, which looks like this:

@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();
}
}
Copy after login

However, this change is not helpful It's a real hassle for me because I have too many URL mappings and the cost of modification is too high.

So I was smart and thought of nginx. Isn’t this guy just used for reverse proxy? It’s so clever as me

With this idea, it’s easy to do it. Directly add a location to the server listening on port 80:

location /myApp {
proxy_pass http://localhost:8080/myApp;
}
Copy after login

Reload nginx:

{NGINX_HOME}/sbin/nginx -s reload
Copy after login

I believe you have mastered the method after reading the case in this article, more exciting Please pay attention to other related articles on php Chinese website!

Recommended reading:

How to use readyState and status in Ajax

How to use get and post in Ajax What problems are encountered and how to deal with them

The above is the detailed content of Use Nginx to avoid ajax cross-domain requests. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template