我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java后端解决跨域的几种问题解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java后端解决跨域的几种问题解决

1.java过滤器过滤

允许整个项目跨域访问,可通过filter来进行过虑:


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 { 
     
  }  
}

在web.xml中需要添加如下配置:


<filter> 
   <filter-name>cors</filter-name> 
   <filter-class>com.ssm.web.filter.SimpleCORSFilter</filter-class> 
  </filter> 
  <filter-mapping> 
   <filter-name>cors</filter-name> 
   <url-pattern>
@Configuration
public class CorsConfig {
  @Bean
  public CorsFilter corsFilter() {
    final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
    final CorsConfiguration corsConfiguration = new CorsConfiguration();
    
    corsConfiguration.setAllowCredentials(true);
    
    corsConfiguration.addAllowedOrigin("*");
    
    corsConfiguration.addAllowedHeader("*");
    
    corsConfiguration.addAllowedMethod("*");
    urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
    return new CorsFilter(urlBasedCorsConfigurationSource);
  }
}

4、使用SpringCloud网关

服务网关(zuul)又称路由中心,用来统一访问所有api接口,维护服务。
Spring Cloud Zuul通过与Spring Cloud Eureka的整合,实现了对服务实例的自动化维护,所以在使用服务路由配置的时候,我们不需要向传统路由配置方式那样去指定具体的服务实例地址,只需要通过Ant模式配置文件参数即可

5、使用nginx做转发

现在有两个网站想互相访问接口 在http://a.a.com:81/A中想访问 http://b.b.com:81/B 那么进行如下配置即可
然后通过访问 www.my.com/A 里面即可访问 www.my.com/B


server {
    listen    80;
    server_name www.my.com;
    location /A {
      proxy_pass http://a.a.com:81/A;
      index index.html index.htm;
    }
    location /B {
      proxy_pass http://b.b.com:81/B;
      index index.html index.htm;
    }
  }

如果是两个端口想互相访问接口 在http://b.b.com:80/Api中想访问 http://b.b.com:81/Api 那么进行如下配置即可
使用nginx转发机制就可以完成跨域问题


server {
    listen    80;
    server_name b.b.com;
    location /Api {
      proxy_pass http://b.b.com:81/Api;
      index index.html index.htm;
    }
  }

到此这篇关于java后端解决跨域的几种问题解决的文章就介绍到这了,更多相关java 跨域内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java后端解决跨域的几种问题解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java后端怎么解决跨域问题

在Java后端解决跨域问题可以使用以下几种方法:使用Servlet的过滤器:创建一个实现javax.servlet.Filter接口的过滤器,在过滤器中设置响应头信息Access-Control-Allow-Origin为允许访问的域名。然
2023-10-23

【Java】Java中解决跨域问题的几种方法(建议收藏)

文章目录 背景一、什么是跨域?为什么会出现跨域二、Java实现跨域方式2.1、返回新的 CorsFilter(全局跨域)2.2、重写 WebMvcConfigurer(全局跨域)2.3、使用注解 (局部跨域)2.4、手动设置响应头(
2023-08-30

java怎么解决跨域问题

为了解决 Java 中的跨域问题,可以采取以下方法:修改服务器端配置:在服务器端的响应中添加响应头,允许指定的源访问该资源。可以通过设置 Access-Control-Allow-Origin 来允许指定的源访问资源,如:response.
java怎么解决跨域问题
2024-02-29

springboot怎么解决前后端分离时的跨域问题

这篇文章主要介绍springboot怎么解决前后端分离时的跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!springboot是什么springboot一种全新的编程规范,其设计目的是用来简化新Spring应用
2023-06-14

web前端跨域问题怎么解决

本文小编为大家详细介绍“web前端跨域问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“web前端跨域问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为什么跨域?为什么会出现跨域问题呢?那就不
2023-06-29

jq配合后端解决跨域

跨域是前端开发中的难题,因不同域名的限制,浏览器无法发送请求。本文介绍了一种解决方法——使用jq命令行工具配合后端配置,修改请求,使其绕过跨域限制。jq的.origin函数可添加自定义原点标头,.headers函数可修改现有标头;修改后的请求可使用jq的-c选项与cURL配合使用,发送到后端API。此外,处理预检请求、配置凭证共享和使用JSONP也是需要考虑的方面。通过结合jq和后端配置,可以解决跨域问题,构建更灵活的Web应用程序。
jq配合后端解决跨域
2024-04-02

前后端跨域解决方案

目录 一、为什么会有跨域问题二、解决跨域方案有哪些三、解决跨域最佳方案是什么四、Spring中如何引入CORS 一、为什么会有跨域问题 跨域问题是由于浏览器的同源策略导致的。同源策略是一种安全策略,它限制了一个源的文档或脚本
2023-08-20

如何在前端中解决跨域问题

如何在前端中解决跨域问题?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。广义的跨域:1.)
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录