主页 > 知识库 > 使用Nginx 反向代理来避免 ajax 跨域请求的方法

使用Nginx 反向代理来避免 ajax 跨域请求的方法

热门标签:服务器配置 电子围栏 阿里云 团购网站 银行业务 Linux服务器 科大讯飞语音识别系统 Mysql连接数设置

服务器上 nginx + tomcat ,其中 nginx 监听 80 端口, tomcat 监听 8080 端口。

因为对前端不熟悉,以为用 ajax 就可以不需要 callback ,然而前端的同学说不跨域的情况下才不需要 callback ,让我在返回的 json 里加上。可是我刚刚学会了最基本的 spring-mvc 用法,根本不知道怎么加上 callback

网上到时找到一些可行的代码,差不多这个样子:

@RequestMapping(method=RequestMethod.GET,value="getProjectStatusList",produces="text/html;charset=UTF-8")
@ResponseBody
public String getProjectStatusList(HttpServletRequest request, 
HttpServletResponse response){
MapString,Object> map = new HashMapString,Object>();
try{
String callback = request.getParameter("callback");
//System.out.println("token:"+request.getHeader("token"));
ListString> 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();
}
}

然而这样改动对我来说简直是伤筋动骨,因为我有太多的 URL 映射,修改的成本太大。

所以机智的我想到了 nginx ,这家伙不就是拿来搞反向代理的吗?真是机智如我

有了这个思路,做起来就简单了。直接在监听 80 端口的 server 中添加一个 location :

location /myApp {
proxy_pass http://localhost:8080/myApp;
}

重新加载 nginx :

{NGINX_HOME}/sbin/nginx -s reload

然后就把之前 http://site:8080/myApp 的跨域请求变成了 http://site/myApp 的非跨域请求。

以上所述是小编给大家介绍的使用Nginx 反向代理来避免 ajax 跨域请求的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:
  • Nginx跨域设置Access-Control-Allow-Origin无效的解决办法
  • Nginx服务器中处理AJAX跨域请求的配置方法讲解
  • 深入浅析Nginx实现AJAX跨域请求问题
  • Nginx 解决WebApi跨域二次请求以及Vue单页面的问题
  • Nginx配置跨域请求Access-Control-Allow-Origin * 详解

标签:衢州 衡水 蚌埠 广元 大理 萍乡 江苏 枣庄

巨人网络通讯声明:本文标题《使用Nginx 反向代理来避免 ajax 跨域请求的方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266