1. 跨域问题的产生

前端向后台请求,但是后台与前台不是同一个域中(域名,端口,协议任一不同就不是同一个域),那么就会产生跨域问题。

2.跨域问题解决

2.1 传统的项目那么可以直接在Filter过滤器中设置响应的头部信息。

/*** 在过滤器中解决跨域问题*/
@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-Allow-Methods", "POST, GET, OPTIONS, DELETE");response.setHeader("Access-Control-Max-Age", "1000");response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");//response.addHeader("Access-Control-Allow-Headers", "*");chain.doFilter(req, res);
}

2.2 分布式微服务系统可以在网关中解决跨域问题

@Configuration
public class CorsConfig {@Beanpublic CorsFilter corsFilter() {final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();final CorsConfiguration config = new CorsConfiguration();// 允许cookies跨域config.setAllowCredentials(true);// #允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Originconfig.addAllowedOrigin("*");// #允许访问的头信息,*表示全部config.addAllowedHeader("*");// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了config.setMaxAge(18000L);// 允许提交请求的方法,*表示全部允许//config.addAllowedMethod("*");config.addAllowedMethod("OPTIONS");config.addAllowedMethod("HEAD");// 允许Get的请求方法config.addAllowedMethod("GET");config.addAllowedMethod("PUT");config.addAllowedMethod("POST");config.addAllowedMethod("DELETE");config.addAllowedMethod("PATCH");source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}
}

2.3 跨域问题也可以使用nginx代理解决

前后端分离框架跨域问题解决相关推荐

  1. Spring Boot2.x-13前后端分离的跨域问题解决方法之Nginx

    文章目录 概述 浏览器同源策略 后台搭建 pom.xml interceptor 配置 Controller 启动测试 浏览器和session 后端工程发布到服务器上 问题复现 通过Nginx反向代理 ...

  2. 06-若依前后端分离项目跨域问题解决方式

    什么是跨域 跨域就是前后端分离项目前端无法把session等信息传递给后端服务器.跨域源自浏览器同源策略.同源策略是一种约定,同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互. ...

  3. Vue+Flask前后端分离 Vue3跨域配置

    Vue+Flask前后端分离 Vue3跨域配置 前端端口号为8080 后端端口号为5000 问题描述 问题解决 接口路径映射 前端端口号为8080 后端端口号为5000 后端端口API 代码片. @a ...

  4. 解决java前后端分离端口跨域问题

    解决java前后端分离端口跨域问题 参考文章: (1)解决java前后端分离端口跨域问题 (2)https://www.cnblogs.com/mollie-x/p/10449686.html 备忘一 ...

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

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

  6. 前后端分离的跨域解决方案

    声明: 在以往的开发中,前后端分离也不是像现在这么热门,所谓的前端工程师也只不过是写好静态页面由Java工程师或者php工程师嵌入到页面中进行开发,这或许加重了这些工程师的工作量,而且在样式调试上由纯 ...

  7. 前后端分离与跨域的解决方案(CORS的原理)

    前后端分离 前后端分离的好处 最大的好处就是前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小. 后台错误不会直接反映到前台,错误接秒较为友好. 由于后台是很难去探知前台页面的分布情况,而 ...

  8. 前后端分离项目跨域问题及解决方案

    目录 1.什么是跨域 2.前后端分离项目中的跨域问题 3.方法一:SpringBoot后端进行处理 4.方法二:在Vue前端进行处理 5.总结 1.什么是跨域 请求同域资源: 在域名 (或 ip 地址 ...

  9. Day15(Js入门、jquery入门、ajax入门、前后端分离开发跨域问题、linux环境准备、jdk_tomcat环境搭建、docker介绍及应用(docker安装、基本命令、安装tomcat))

    js入门 js代码辅助 window–>preferences–>javaScript–>Content Assist .abcdefghijklmnopqrstuvwxyz alt ...

最新文章

  1. BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐
  2. Java序列化的作用和反序列化
  3. testng入门_单元测试
  4. 模板实参推导 xx_cast的实现
  5. 动手实现Kotlin协程同步切换线程,以及Kotlin协程是如何实现线程切换的
  6. map:map指向最后一个元素?指向第一个元素?
  7. 跟JBPM学设计模式之适配器模式
  8. 【Qt】QWidget类详解(函数篇)
  9. 推荐一个MDI模式的远程桌面管理程序
  10. mysql中使用安全等于 <=>
  11. 用计算机进行实时自动采集,计算机的五大主要用途
  12. VBS整人代码大合集
  13. 个人简历小程序(附源码)
  14. 抖音在线无水印解析PHP源码
  15. 明尼苏达量表结果分析_MMPI明尼苏达多项人格测验量表分析
  16. 六、股票市场分析实战项目一
  17. android 照相机裁剪,Android拍照、照片选择以及图片裁剪完全解析
  18. opencv图像对齐与图像相减python
  19. 为什么调用Dao层会报空指针异常
  20. Vagrant安装到其它盘(除C)

热门文章

  1. git 拉取远端分支
  2. 合并两个递增的有序数组
  3. MATLAB求解二元(多元)函数极值
  4. C语言+EasyX实现数字雨
  5. 提取特征点和特征点描述
  6. 简单入门CDQ分治(很有意思的算法)
  7. RTOS系统全Thumb编译+Neon加速火力全开
  8. 推荐一个好用的OKR工具
  9. mbedtls安装的心路历程
  10. 代谢组学资讯,全球爆火的ChatGPT,是如何看待三阴性乳腺癌的?