ajax 跨域请求+spring mvc篇
来源:互联网 发布:天族气功师捏脸数据 编辑:程序博客网 时间:2024/05/22 12:54
有时候前后台做数据交互,会遇到烦人的跨域请求问题,如果你还是一枚编程小白来说,无疑来说是很痛苦的事。当然网上也肯定会有一些解决方法。但自身实力有限,不一定会看的懂,能把问题解决了。
一般的解决跨域问题解决方法主要有:
一般的解决跨域问题解决方法主要有:
A:利用jsonp ,(JSONP是JSON with Padding的略称。它是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。--来源百度).当然,我猜你可能没有看懂。简单来说就是在请求数据时,利用callback创建一个回调函数,然后在远程服务上调用这个函数并且将JSON 数据形式作为参数传递,完成回调。并且在html页面(前台)修改代码,也要在后台修改代码(增加callback)。这样才能完成数据交互。
(解决办法:http://www.cnblogs.com/chopper/archive/2012/03/24/2403945.html)
对于新手而言,前后台同时修改代码可能有一点点麻烦。这里主要是介绍是下面一种方法,轻松有效便捷。
B:利用过滤器(filter)和web.xml.
首先你要在filter文件夹里创建一个类:代码为:(我的类名为AjaxLogin)
public class AjaxFilter implements javax.servlet.Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletResponse httpServletResponse=(HttpServletResponse)servletResponse; httpServletResponse.setHeader("Access-Control-Allow-Origin", "*"); httpServletResponse.setHeader("Access-Control-Allow-Headers", "Authentication"); filterChain.doFilter(servletRequest,httpServletResponse); } @Override public void destroy() { }}
配置web.xml:
只要完成上面两步就ok了,你完全可以一键复制我的代码到你的文件中。
两种方法对比:
1.jsonp的方法要修改前后台代码,相比第2种方法则稍微麻烦。
2.jsonp的方法只能针对某一个ajax请求,第2种方法是针对所有的ajax的请求。配置一次,就无须配置第2次。
3.jsonp的方法在某些方面来说较为第二种方法安全,但也安全不了哪里去。
1 0
- ajax 跨域请求+spring mvc篇
- Spring MVC ajax请求
- jQuery中Ajax+Spring MVC实现跨域请求
- jQuery中Ajax+Spring MVC实现跨域请求
- Ajax+Spring MVC实现跨域请求(JSONP)
- Ajax+Spring MVC实现跨域请求(JSONP)
- spring mvc ajax jsonp 跨域请求 返回值 配置
- Ajax+Spring MVC实现跨域请求(JSONP)
- Ajax+Spring MVC实现跨域请求(JSONP)
- Ajax+Spring MVC实现跨域请求(JSONP)
- Ajax+Spring MVC实现跨域请求(JSONP)
- spring mvc 4.x +ajax跨域访问 post请求
- spring mvc和ajax请求
- Spring mvc 处理ajax请求
- Spring MVC 4 - Ajax请求
- Spring MVC学习----------处理Ajax请求
- spring MVC中ajax请求路径
- spring mvc ajax 请求返回json数据
- Boost.Asio学习之总结
- java反射机制初探
- 笔记︱基于网络节点的node2vec、论文、算法python实现
- 根据内核Oops 定位代码
- 【java学习】JVM学习
- ajax 跨域请求+spring mvc篇
- 怎么保证APP和服务器端通信的安全性
- LeetCode 325. Maximum Size Subarray Sum Equals k
- 明明的随机数
- 2017-1-13 测试小结
- VC:CString用法整理(转载)
- 洛谷 神奇的解法专题 烧水问题
- ] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off 系统卡住,USB口全部掉电
- JavaWeb总结十、HttpServletRequest对象(一)