最近使用ssm开发了一个项目,为了项目的开发速度,采用的是前后端同时开发,所以前端文件没有集成在项目中,最后在调试时涉及到了跨域。跨域的解决方法很多,我采用的是最简单的一种,代码如下:

新建一个过滤器filter

package com.xxxx.xxxxx;

import javax.servlet.*;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

public class SimpleCORSFilter implements Filter {

@Override

public void destroy() {

}

@Override

public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {

HttpServletResponse response = (HttpServletResponse) res;

response.setHeader("Access-Control-Allow-Origin", "*");

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers", "x-requested-with");

chain.doFilter(req, res);

}

@Override

public void init(FilterConfig arg0) throws ServletException {

}

}

然后在xml中配置

cors

com.ssm.web.filter.SimpleCORSFilter

cors

/*

2018.08.07更新

由于项目的升级,感觉以前的filter不满足实际需求,故而进行扩展升级

filter

package com.xxx.xxx;

import org.springframework.stereotype.Component;

import javax.servlet.*;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@Component

public class CORSFilter implements Filter {

// 存放跨域的白名单

private String[] permitUrl;

@Override

public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {

HttpServletResponse response = (HttpServletResponse) res;

HttpServletRequest request = (HttpServletRequest) req;

String myOrigin = request.getHeader("origin");

boolean isValid = false;

for (String ip : permitUrl) {

if (myOrigin != null && myOrigin.equals(ip)) {

isValid = true;

break;

}

}

response.setContentType("textml;charset=UTF-8");

response.setHeader("Access-Control-Allow-Origin", isValid ? myOrigin : "null");

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");

response.setHeader("Access-Control-Allow-Credentials", "true");

response.setHeader("P3P", "CP=\"NON DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa HISa TELa OTPa OUR UNRa IND UNI COM NAV INT DEM CNT PRE LOC\"");

response.setHeader("XDomainRequestAllowed", "1");

chain.doFilter(req, res);

}

// 初始化方法,这里的permitUrl是在web.xml中配置的

@Override

public void init(FilterConfig filterConfig) throws ServletException {

String urls = filterConfig.getInitParameter("permitUrl");

if (urls != null) {

urls = urls.replaceAll("\\n", "").replaceAll("\\r", "").replaceAll("\\t", "");

}

if (!"".equals(urls) && urls != null) {

permitUrl = urls.split(",");

}

if (permitUrl != null) {

for (int i = 0; i < permitUrl.length; i++) {

permitUrl[i] = permitUrl[i].trim();

}

}

}

// 销毁方法

@Override

public void destroy() {

}

}

web.xml中配置(这里的permitUrl中的value就是你项目允许的ip地址,不允许的将访问不到)

cors

com.xxx.xxx.CORSFilter

permitUrl

http://192.168.1.51:3000,

http://192.168.1.51:8020,

http://www.baidu.com:8084

cors

/*

JAVA - SpringBoot项目跨域访问

JAVA - SpringBoot添加支持CORS跨域访问 CORS(Cross-Origin Resource Sharing)“跨域资源共享”,是一个W3C标准,它允许浏览器向跨域服务器发送Aja ...

web项目跨域访问

1.同域相互访问 假设A.html 与 b.html domain都是localhost (同域) A.html中iframe 嵌入 B.html,name=myframe A.html有js fun ...

两个java项目&comma;跨域访问时&comma;浏览器不能正确解析数据问题

@Controller@RequestMapping(value = "api/item/cat")public class ApiItemCatController { @Aut ...

配置Nginx和Apache允许指定域名CORS跨域访问

前后端分离开发,导致前端项目需要跨域请求后端接口,解决方法有很多,本文只介绍两个: 1. 修改后端程序代码实现允许跨域请求 2. 修改服务器配置文件实现允许跨域请求 正文: 方法1:修改后端程序代码实 ...

解决vue&plus;springboot前后端分离项目&comma;前端跨域访问sessionID不一致导致的session为null问题

问题: 前端跨域访问后端接口, 在浏览器的安全策略下默认是不携带cookie的, 所以每次请求都开启了一次新的会话. 在后台打印sessionID我们会发现, 每次请求的sessionID都是不同的, ...

解决cookie跨域访问

一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...

Angular2中对ASP&period;NET MVC跨域访问

应用场景 项目开发决定使用angular2进行前后端分离开发,由我负责后端服务的开发,起初选择的是web api进行开发.对跨域访问通过API中间件+过滤器对跨域访问进行支持.开发一段后,通知需要移植 ...

cookie 跨域访问的解决方案

Cookie 同域单点登录  最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录.    ...

flash跨域访问,crossdomain&period;xml&comma;error &num;2048

最近遇到了flash的万年老梗,跨域访问的问题.之前一直没有处理过这类问题,是因为做项目的时候别人已经处理好了.真到自己遇到的时候,还是很费脑筋的. 1遇到的问题 客户端发布到网页的时候,socket ...

随机推荐

react的基本学习

1. 传递属性,{...props}的方式为组件传递了这两个属性,这就是JSX中的延展属性,"..."成为 ...

javascript数组浅谈2

上次说了数组元素的增删,的这次说说数组的一些操作方法 join()方法: ,,] arr.join("_") //1_2_3 join方法会返回一个由数组中每个值的字符串形式拼接而 ...

Nginx 笔记与总结(5)访问日志管理:计划任务 &plus; 日志切割

要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如: [root@localhost ~]# da ...

Linux文件操作

Linux中一切都是文件.如普通文件,目录,设备,管道等.操作这些文件有两种方式,调用系统函数和使用标准I/O库. 一.调用系统函数1.文件描述符:数值类型,表示打开的文件标识程序运行时,会首先打开3 ...

C&num;控件怎样获取,和失去焦点的处理

publicForm1() { InitializeComponent(); textBox1.Enter+=newEventHandler(textBox1_Enter);//获得焦点事件 text ...

RESTful规范建议

RESTful概述 RESTful是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. REST是Representational State T ...

【winform】splitContainer拆分器控件

一. 1.panel的显示和隐藏 设置SplitterDistance的数值大小即可改变panel的左右大小.这里设置的数值是指分割线距离左边框的像素,设置成0的话,左半部分就完全看不到了,可以实现一 ...

使用JAVA数组实现顺序表

1,引入了JAVA泛型类,因此定义了一个Object[] 类型的数组,从而可以保存各种不同类型的对象. 2,默认构造方法创建了一个默认大小为16的Object数组:带参数的构造方法创建一个指定长度的O ...

python show slave status

#!/usr/bin/env python import MySQLdbimport contextlib @contextlib.contextmanagerdef mysql(Host,Port, ...

音视频学习系列第(三)篇---wav文件的存储和解析

音视频系列 什么是wav wav是一种无损的音频文件格式,wav文件有两部分,第一部分是文件头,记录一些重要的参数信息,如音频的采样率,通道数,数据位宽,第二部分是数据部分,数据部分可以是PCM,也可 ...

ssm项目解决AJAX跨域,ssm项目跨域访问相关推荐

  1. IntelliJ IDEA导入Maven之后强制刷新项目解决无法识别为Maven项目的问题

    先点击左下角按钮以显示Maven Project 再点击右侧Maven Project 点击刷新按钮,当然也可以点击加号选择pom.xml文件. 最后是等待项目的更新. 转载于:https://www ...

  2. php json -gt;访问,【转】Php+ajax+jsonp解决ajax跨域问题

    首先:jsonp是json用来跨域的一个东西. 原理是通过script标签的跨域特性来绕过同源策略. 发送端: $.ajax({ type : "post", url : &quo ...

  3. 基于javaweb+springboot的兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)

    基于javaweb+springboot的兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql) 一.项目运行 环境配置: Jdk1.8 + Tomcat8 ...

  4. 魔坊APP项目-17-种植园,商城页面、服务端提供商品api,解决App打包编译以后的跨域限制、客户端获取商品列表并进行展示,集成Alipayplus模块完成支付

    种植园 一.商城页面 orchard.html,代码: <!DOCTYPE html> <html> <head><title>用户中心</tit ...

  5. Java中SSM框架解决跨域请求

    方法一:@CrossOrigin注解的方法,只能作用在一个Controller层 直接在Controller类或方法前加上@CrossOrigin注解即可允许所有ip跨域访问 加在Controller ...

  6. 【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  7. 如何解决ajax跨域问题(转)

    由 于此前很少写前端的代码(哈哈,不合格的程序员啊),最近项目中用到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决 ajax的跨域问题.本篇将讲述一个小白从遇到跨域不 ...

  8. JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  9. $.ajax 加了headers报错_Springboot解决Ajax跨域的三种方式

    这篇文章不华丽,但比较实用,能解决不少大家实际业务中的问题.大家可以收藏起来,以备用时之需! 1.同源策略 1.1 含义 ajax出现请求跨域错误问题,主要原因就是因为浏览器的"同源策略&q ...

最新文章

  1. Sciences:Knight组发表尸体降解过程中的微生物组
  2. 2019.2.7 区块链论文翻译
  3. JavaScript表达式--掌握最全的表达式,一切尽在掌握中,让表达不再是难事
  4. spring下连接mysql_使用Spring连接mysql数据库
  5. best single model of RSNA
  6. 分类决策树 回归决策树_决策树分类器背后的数学
  7. Qt 二级菜单无法输入中文
  8. 安装scrapy 出现Failed building wheel for Twisted(总是显示此错误)解决办法
  9. 20190916:(leetcode习题) 二叉树的层次遍历
  10. 网站访客 简易日志记录
  11. 36. 理解copy_if算法的正确实现
  12. 诺基亚c7微信 服务器忙,诺基亚C7怎么刷机
  13. 【35】存储器层次结构全景:数据存储的大金字塔长什么样?
  14. 行业资讯 | 深圳:BIM法定化,开历史之先河
  15. 《Vue.js实战》记录
  16. 【正点原子FPGA连载】第三十一章RTC实时时钟数码管显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  17. JAVA读取邮件 [AUTH] Username and password not accepted
  18. js随机生成验证码(数字+字母)
  19. android日历信息获取错误,flutter对android的日历数据相关操作
  20. UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xbb‘ in position 61547 解决办法

热门文章

  1. 二、集群时钟同步问题
  2. java.Lang.LinkageError 错误分析
  3. matlab视觉呈现任务,视觉笔记 | 国内外优秀作品解读赏析(1)
  4. centos7防火墙基本操作
  5. VAMP由浅入深(Part-1:由消息传递直接推导)
  6. HCNP——黑洞路由和路由表与FIB表
  7. linux如何删除指定大小以下的文件夹,Linux中定时删除超过指定大小的文件夹
  8. Vue使用v-for与v-if搭配满足条件进行赋值,和v-if三目表达式的使用
  9. 决策树算法原理及案例
  10. 基于React的企业级实战项目的宜居商场