1.编写Filter类

package com.skynet.oilmap.system;

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.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SimpleCORSFilter implements Filter{
    
    public final static Logger LOGGER = LoggerFactory.getLogger(SimpleCORSFilter.class);
    
    private boolean isCross = false;

@Override
    public void destroy() {
        isCross = false;
    }

@Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        try {
            if (isCross) {
                HttpServletRequest httpServletRequest = (HttpServletRequest) request;
                HttpServletResponse httpServletResponse = (HttpServletResponse) response;
                LOGGER.debug("跨域拦截请求: " + httpServletRequest.getServletPath());
                httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
                httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
                httpServletResponse.setHeader("Access-Control-Max-Age", "0");
                httpServletResponse.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");
                httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
                httpServletResponse.setHeader("XDomainRequestAllowed", "1");
            }
            chain.doFilter(request, response);
        }catch (Exception e) {
            LOGGER.debug("拦截请求,判断是否跨域异常", e);
        }
        
    }

@Override
    public void init(FilterConfig filterConfig) throws ServletException {
        String isCrossStr = filterConfig.getInitParameter("IsCross");
        isCross = isCrossStr.equals("true") ? true : false;
    }

}

2.在web.xml中配置该Filter

<!-- 跨域请求 -->
    <filter>
        <filter-name>SimpleCORSFilter</filter-name>
        <filter-class>com.skynet.oilmap.system.SimpleCORSFilter</filter-class>
        <init-param>
            <param-name>IsCross</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>SimpleCORSFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

配置结束即可解决跨域问题。

java解决跨域问题相关推荐

  1. Java 解决跨域问题

    JAVA | Java 解决跨域问题 文章目录 JAVA | Java 解决跨域问题 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter ...

  2. java解决跨域问题_Java项目中如何解决跨域问题

    Java项目中如何解决跨域问题 发布时间:2020-11-11 16:00:40 来源:亿速云 阅读:91 作者:Leah Java项目中如何解决跨域问题?很多新手对此不是很清楚,为了帮助大家解决这个 ...

  3. java解决跨域 多个号_java-解决跨域问题

    今天刚在项目中解决了跨域,记录下javascript 首先了解下相关知识html $.ajax    jQuery的异步请求前端 jsonp :指定跨域异步请求时,后台接收参数名称,默认为callba ...

  4. java解决跨域 -夜幕思年华

    @CrossOrigin 1.指定类跨域 @CrossOrigin @RestController public class UserController {@RequestMapping(" ...

  5. java解决跨域我呢提尼_野生狐狸被救以后,与狗狗成了好朋友,跨域种族的友情很不可思议...

    这世界上每个人有三种感情是不能少的,亲情.爱情.友情.每一种情感都有不同的故事,每一个故事都可以化为另一种情感.而今天有一种友情让我有了另一种解读. 这只狗狗叫做"提尼",提尼一直 ...

  6. 后端解决跨域问题---SpringBoot

    解决跨域问题 在后端解决跨域问题: 新建配置类 config/ CrosConfig.java /*** 解决跨域问题*/ @Configuration public class CrosConfig ...

  7. 【古法炮制】最原始的解决JAVA接口跨域的问题

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  8. java 跨域_springboot解决跨域CROS问题,用注解@CrossOrigin

    项目是springboot框架,前后端分离,需要跨域,当前前端可以用JSONP解决,但是java端如何解决呢? 因为是springboot框架,所以好多都可以用注解解决问题,所以就用到了@CrossO ...

  9. vue+Java后端进行调试时如何解决跨域问题

    今天在开发过程中遇到一个问题,拿到了一套vue代码,计划对这套代码的部分样式进行调整,Java后端代码已经写好并且部署到了线上.这时命令行运行vue项目时访问会受限,取不下数据来,遇到了跨域访问失败的 ...

最新文章

  1. 985高校挖出古墓!网友:毕业论文自己找上门来了
  2. 程序员心中都有一个江湖,java世界,就是一个江湖!
  3. 谈谈微服务设计中的API网关模式
  4. Java内存之栈与堆
  5. Java的算法讲解以及案例!
  6. java to对象_java中同类对象之间的compareTo()和compare()方法对比分析
  7. 鸿蒙os 2.0跑分,预装鸿蒙OS 2.0!华为MatePad Pro2跑分曝光:麒麟9000、8GB内存
  8. [106].从中序与后序遍历序列构造二叉树
  9. python读取每一行文字二十四_python接口自动化(二十四)--unittest断言——中(详解)...
  10. JS实现图片循环滚动
  11. SVN trunk branches tags 的用法 - 摘自网络
  12. 不用去验血,一查就能知道自己缺啥,一定要收好
  13. Android中用文件初始化sqlite 数据库(二)
  14. 太极图正确画法_认识道教太极图,了解正规画法
  15. unity 打开项目路径无效_unity3d建立的文件有中文路径,现在新建了项目打不开了...
  16. Oracle 客户端 PLSQL 12.0.7 安装、数据导出、Oracle 执行/解释计划
  17. Scala中I/O类使用详细解析
  18. VS开发问题:应用程序无法启动 因为程序的并行配置不正确 ,解决方案
  19. uni-app微信小程序短信验证、微信支付
  20. 三年高级开发,六年成为架构师,到CTO我用了12年

热门文章

  1. Immutable 想破坏它也没办法
  2. 怎么定义html的整体的宽度,html怎么设置最大宽度
  3. js 只准输入数字_js验证如何限制文本框只能输入数字
  4. mysql nosql 同步_使用canal和canal_mysql_nosql_sync同步mysql数据
  5. android bitmap转图片_Android 这些 Drawable 你都会用吗?
  6. php 26个字母大写,英语26个字母大小写怎么写
  7. 目前流行的装修风格_当下最流行的十大装修风格。目前主流的装修风格前十
  8. html表单中的数据提交后清空,怎么实现小程序中表单提交后自动清空内容
  9. 火影忍者手游服务器维护4月4,火影忍者手游4月14日联服公告-火影忍者手游4月14日联服时间_牛游戏网...
  10. java小程序扑克牌_用Java来写一个模拟斗地主发牌的小程序