接口调用出现跨域问题时,浏览器会报如下提示

XMLHttpRequest cannot load xxx. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.

等等信息

直接通过一个过滤器来解决

import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;/*** 允许跨域过滤器(Cross-Origin Resource Sharing)* @author user**/
@Component
public class CorsFilter implements Filter {private final Logger logger = Logger.getLogger(this.getClass().getPackage().getName());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-Credentials", "true");response.setHeader("Access-Control-Allow-Methods", "*");response.setHeader("Access-Control-Max-Age", "3600");
//        response.setHeader("Access-Control-Allow-Headers", "*");response.setHeader("Access-Control-Allow-Headers", "Authorization,Origin,X-Requested-With,Content-Type,Accept,"+ "content-Type,origin,x-requested-with,content-type,accept,authorization,token,id,X-Custom-Header,X-Cookie,Connection,User-Agent,Cookie,*");response.setHeader("Access-Control-Request-Headers", "Authorization,Origin, X-Requested-With,content-Type,Accept");response.setHeader("Access-Control-Expose-Headers", "*");
chain.doFilter(req, response);}public void init(FilterConfig filterConfig) {}public void destroy() {}}

web.xml 文件

<!-- 跨域过滤器 -->
<filter>  <filter-name>corsFilter</filter-name>  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping><filter-name>corsFilter</filter-name><url-pattern>/dental/*</url-pattern>
</filter-mapping>
<filter-mapping><filter-name>corsFilter</filter-name><url-pattern>/toothCheck/*</url-pattern>
</filter-mapping>

原文地址:

https://www.cnblogs.com/poterliu/p/11339942.html

转载于:https://www.cnblogs.com/poterliu/p/11339942.html

Java 后端彻底解决跨域问题(CORS)相关推荐

  1. Vue flask前后端分离解决跨域

    Vue flask前后端分离解决跨域 安装axios 在项目目录下输入:npm install axios--save-dev 配置axios 在main.js中引入axios import axio ...

  2. Django后端彻底解决跨域问题

    Django后端彻底解决跨域问题 参考文章: (1)Django后端彻底解决跨域问题 (2)https://www.cnblogs.com/skyflask/p/10675706.html 备忘一下.

  3. springboot解决跨域问题(Cors)

    springboot解决跨域问题(Cors) 参考文章: (1)springboot解决跨域问题(Cors) (2)https://www.cnblogs.com/owenma/p/8466856.h ...

  4. 跨域详解!前后端分离解决跨域问题

    文章目录 一.为什么会出现跨域问题 二.什么是跨域 三.非同源限制 四.跨域问题的解决方式 Jsonp前后端配合 前端修改 后端修改 CORS 详解响应头 5. SpringBoot解决 [方式一]全 ...

  5. 后端如何解决跨域问题

    对于跨域,相信同学们都有所了解.前端的跨域的若干种方式,大家也都知道,什么 JSONP,iframe+domain 等等.但是我们今天的主题,不是前端跨域,而是后端跨域. 一旦提及到跨域,就会想到同源 ...

  6. 什么是跨域(CORS)?怎么解决跨域(CORS)?

    什么是跨域(CORS)? 跨域是指浏览器不能执行其他网站上的脚本,它是由浏览器的同源策略造成的,是浏览器对 JS 的安全限制.是浏览器从一个域名网页请求另一个域名资源时,出现端口.域名.协议任一不同, ...

  7. java后端实现CROS跨域请求的方式

    跨域: 跨域就是请求的url中的"协议"."域名"."端口号"其中任何一种不一样都是属于跨域.解决跨域的主要的四种方法是jsonp.跨域资源 ...

  8. vue解决线上跨域的问题_vue前后端分离解决跨域问题

    用Vue-cli脚手架搭建了个demo,前后分离就有跨域问题的出现. vue-clie搭建demo步骤(传送门):https://www.cnblogs.com/wangenbo/p/8487764. ...

  9. Java后端带参跨域访问_java后端解决请求跨域

    跨域 跨域:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 例如:a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同 ...

  10. Java 后端服务的跨域处理

    一.同源策略 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能不能使用.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现.同源策略 ...

最新文章

  1. linux每日命令,日常整理linux常用命令大全(收藏)
  2. 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
  3. javacript 多文件程序
  4. LeetCode刷题(41)--Sort Color
  5. mate10鸿蒙系统,华为将发布 MatePad Pro:搭载鸿蒙系统,麒麟 9000 处理器
  6. html.fromhtml 加载图片,TextView使用html.fromhtml加载html并显示图片
  7. JS包管理器Yarn 与 npm比较
  8. BLOCK_TYPE_US_VALID(pHead-nBlockUse)
  9. Modelsim 10.2c 百度网盘下载
  10. WeiRuan DaBing
  11. 02C++对C的增强
  12. 《架构师修炼之道》读书笔记之五:换位思考
  13. eclipse怎么配置oracle数据库,Eclipse连接Oracle数据库介绍
  14. typora 快捷键使用(mac)
  15. 独家首发|汇聚知识 理解世界——百度王海峰谈知识图谱的最新演讲笔记
  16. 5、Horizon 桌面模板机安装配置
  17. SpringBoot Mybatis注解调用Mysql存储过程并接收多个OUT结果集(多个mode=IN和mode=OUT参数)
  18. 核PCA(Kernel PCA)学习笔记
  19. 【JavaScript】Interview必背(详细版)
  20. CPT、CPM、CPC、CPA、CPS

热门文章

  1. WIN10网络共享文件夹实战
  2. 2021-08-24梦笔记
  3. 软件基本功:做自说明的测试文档,
  4. LINUX编译ARM64/AARCH64版本的jogamp(gluegen/jogl)注意事项
  5. 韩国李世石跟韩国AI大战,2负一胜
  6. 吾之工作要求:死板,教条,僵化
  7. 负负为何得正的推理过程
  8. LINUX安装DeepStream
  9. 热烈庆祝博客排名进入前一万(8448)
  10. 删除文件时提示“对于目标文件系统,文件xx过大”的处理办法”的解决办法