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

 更新时间:2016年06月12日 14:02:46   作者:稀土掘金  
这篇文章主要介绍了使用Nginx 反向代理来避免 ajax 跨域请求的方法的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

服务器上 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){
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();
}
}

然而这样改动对我来说简直是伤筋动骨,因为我有太多的 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 跨域请求的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Ajax bootstrap美化网页并实现页面的加载删除与查看详情

    Ajax bootstrap美化网页并实现页面的加载删除与查看详情

    Bootstrap是Twitter推出的一个开源的用于前端开发的工具包,Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。下面通过本文给大家介绍Ajax bootstrap美化网页并实现页面的加载删除与查看详情,需要的朋友可以参考下
    2017-03-03
  • FormData+Ajax实现上传进度监控

    FormData+Ajax实现上传进度监控

    FormData类型其实是在XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利。接下来通过本文给大家分享FormData+Ajax实现上传进度监控,需要的朋友一起看看吧
    2017-11-11
  • 探讨Ajax中有关readyState(状态值)和status(状态码)的问题

    探讨Ajax中有关readyState(状态值)和status(状态码)的问题

    这篇文章主要介绍了探讨Ajax中有关readyState(状态值)和status(状态码)的问题的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • Ajax技术组成与核心原理分析

    Ajax技术组成与核心原理分析

    这篇文章主要介绍了JavaScript性能优化之函数节流(throttle)与函数去抖(debounce),感兴趣的小伙伴们可以参考一下
    2016-08-08
  • ajax实现select三级联动效果

    ajax实现select三级联动效果

    这篇文章主要为大家详细介绍了ajax动态实现select三级联动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Ajax二级联动菜单实现原理及代码

    Ajax二级联动菜单实现原理及代码

    二级联动菜单,一个多么方便且实用的用户交互功能,有需求的朋友可以参考下本文,或许对你的菜单知识深入学习有帮助,好了,闲话不多说,看代码吧
    2013-01-01
  • ajax、axios和fetch之间优缺点重点对比总结

    ajax、axios和fetch之间优缺点重点对比总结

    今天被问到用没用过ajax axios,我回答经常用axios,但ajax用的比较少,下面这篇文章主要给大家介绍了关于ajax、axios和fetch之间优缺点重点对比总结的相关资料,需要的朋友可以参考下
    2022-12-12
  • Ajax 实现加载进度条

    Ajax 实现加载进度条

    本文给大家介绍ajax实现加载进度条效果,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • 完成了AJAX树附原理分析

    完成了AJAX树附原理分析

    周五完成了计划中的RAILS框架中实现的AJAX树目录,今天才有空记录一下。
    2009-02-02
  • Jquery Ajax请求方法小结(值得收藏)

    Jquery Ajax请求方法小结(值得收藏)

    本文给大家介绍jquery ajax请求方法小结,jquery作为一个轻量级的js框架,能快速的开发js应用,并且在一定程度上改变了我们写js代码的习惯,对jquery ajax请求感兴趣的朋友参考下
    2015-11-11

最新评论