什么是跨域,简单点来说,你可以在自己家里进进出出,但是到别人家里就不行了。你的征得主人的意见才行。
vampires are invited into the house
spring mvc mybatis
spring MVC mybatis解决Ajax跨域请求,我是忍住不笑了。jsonp,代理,h5…都是弱爆了。
废话不多说,上代码
@CrossOrigin()
没错,就是这么的垃圾。一个注解完成所有的需求。但是它的唯一缺陷就是spring mvc需要4.2.5以上。
<properties>
<spring.version>4.2.5.RELEASE</spring.version>
<spring-mybatis.version>1.1.1</spring-mybatis.version>
<shiro.version>1.2.3</shiro.version>
<mybatis-spring>1.1.1</mybatis-spring>
<mybatis-paginator>1.2.7</mybatis-paginator>
</properties>
Access-control-Allow-Origin
后台通过response.setHeader()的方式实现跨域请求,前端$.ajax()的方法设置请求头恕我才疏学浅,还没研究出来。有会的人请联系我。
邮箱:1028784495@qq.com,QQ加我也没事情。
java后端代码
public Map<String,Object> getArticleById(Integer isid , HttpServletResponse response){
Map<String,Object> resultMap = new HashMap<String, Object>();
try{
response.setHeader("Access-Control-Allow-Origin", "*");// 指定允许其他域名访问 * 表示所有
//response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type,token"); 响应类型
//response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH"); 响应头设置
……
$.ajax前端代码
url:’http://localhost:3333/AppCmsArticleAction/getArticleByPage.do?isid=0‘,
尤其得注意url中的http://别忘记加辣,一开始本菜鸡没加,后台都请求不过去,还以为是跨域请求写错辣,其实是你的url写错辣。
$.ajax({
url:'http://localhost:3333/AppCmsArticleAction/getArticleByPage.do?isid=0',
type:'get',
success:function(){}
……
})
由于这是H5,所以不支持IE8,但是这年头大家都开始不care辣。