国寿i动项目经验之(解决前后端跨域请求技术):

  由于网段原因,导致前端js请求后端服务接口出现跨域,没法实现正常的请求,所以需要对请求进行跨域处理

  引入jar:

  

 <!-- 解决前后端接口交互跨域问题 --><dependency><groupId>com.thetransactioncompany</groupId><artifactId>cors-filter</artifactId><version>1.7</version></dependency><dependency><groupId>com.thetransactioncompany</groupId><artifactId>java-property-utils</artifactId><version>1.9</version></dependency>

configuration 类文件中 解决跨域的Bean

package com.sinosoft.config;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import java.util.ArrayList;
import java.util.List;@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {private static final Logger LOGGER = LoggerFactory.getLogger(WebMvcConfigurer.class);/*** 添加拦截器 目的是拦截前端过来的请求** @param registry*/public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new RequestLog()).addPathPatterns("/**");super.addInterceptors(registry);}/*** 初始化过滤器*/@Beanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean registrationBean = new FilterRegistrationBean();MyFilter httpBasicFilter = new MyFilter();registrationBean.setFilter(httpBasicFilter);List<String> urlPatterns = new ArrayList<String>();urlPatterns.add("*");registrationBean.setUrlPatterns(urlPatterns);return registrationBean;}/*** 解决前端跨域请求* <p>* 简单跨域就是GET,HEAD和POST请求,但是POST请求的"Content-Type"只能是application/x-www-form-urlencoded, multipart/form-data 或 text/plain* <p>* 反之,就是非简单跨域,此跨域有一个预检机制,说直白点,就是会发两次请求,一次OPTIONS请求,一次真正的请求** @return*/@Beanpublic CorsFilter corsFilter() {LOGGER.info("开启CorsFilter,解决前后端分离模式接口交互跨域问题");final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();final CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.setAllowCredentials(true);// 允许cookies跨域corsConfiguration.addAllowedOrigin("*");// #允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的OrigincorsConfiguration.addAllowedHeader("*");// #允许访问的头信息,*表示全部corsConfiguration.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了corsConfiguration.addAllowedMethod("*");//允许所有的请求方式urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);return new CorsFilter(urlBasedCorsConfigurationSource);}
}

转载于:https://www.cnblogs.com/xushuyi/articles/6979615.html

SpringCloud(10)—— 国寿i动项目经验之(解决前后端跨域请求技术)相关推荐

  1. SpringCloud(5)—— 国寿i动项目经验

    国寿i动项目经验(1) 201703初 客户提出构建国寿i动项目,开始第一次尝试解除spring boot.及spring cloud 架构,初始一点都不熟悉这种对springmvc进行二次封装的架构 ...

  2. SpringCloud(8)—— 国寿i动项目经验之(拦截器Interceptors技术)

    国寿i动项目经验之(拦截器Interceptors技术): 由于Springcloud框架是对Springmvc 进行的二次封装,可以采用面向切面的方式进行前端请求拦截,具体功能逻辑如下: WebMv ...

  3. SpringCloud(9)—— 国寿i动项目经验之(Redis缓存技术)

    国寿i动项目经验之(Redis缓存技术): 首先需要启用redis对应的jar依赖: <dependency><groupId>org.springframework.boot ...

  4. SpringCloud(7)—— 国寿i动项目经验之(过滤器Filter技术(请求体二次解密处理技术))...

    过滤器Filter技术(请求体二次解密处理技术): 对前端App请求进行过滤,在过滤中可以对前端请求体(body)进行二次处理,比如:前端请求的body为加密串.那么就可以在过滤器中对body加密串进 ...

  5. node代理请求 vue_vue-cli项目开发/生产环境代理实现跨域请求+webpack配置开发/生产环境的接口地址...

    使用 Vue-cli 创建的项目,开发地址是 localhost:8080,需要访问非本机上的接口http://10.1.0.34:8000/queryRole.不同域名之间的访问,需要跨域才能正确请 ...

  6. 从0到1编写个人博客项目使用springboot+vue(前后端分离) 到 购买服务器上传项目 到 GitHub开源项目、此过程下所遇问题及解决方法,至少你帮你少走70%弯路

    个人博客编写 后记 2022.12.2.4 : 30.此项目告一段落. ​ 编撰此博客本意里除去对找工作的帮助.更多地是想帮助未走过的人去探探路.总结经验.少走弯路.知识的宝贵不在于无价.而是无私.天 ...

  7. corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求

    vue项目CORS跨域请求500,post请求变options请求,到底是什么情况. 提示:以下内容是一个非专业开发的我对跨域的理解,并不10分准确. 一.先介绍为什么明明发送的是Post请求,为什么 ...

  8. 【项目实战】vue-springboot-pytorch前后端结合pytorch深度学习 html打开本地摄像头 监控人脸和记录时间

    是一个项目的一个功能之一,调试了两小时,终于能够 javascript设置开始计和暂停计时 监控人脸 记录时间了 效果图: 离开页面之后回到页面会从0计时(不是关闭页面,而是页面失去焦点) 离开摄像头 ...

  9. node服务器放vue项目,本地Vue项目跨域请求本地Node.js服务器的配置方法

    前言:跨域请求是在本地开发时经常遇到的需求,也很简单,只是几句代码配置一下的问题.我初次配置跨域请求时由于官方的说明太简洁,找到的教程又落伍,调试了一番并没有解决问题,到最后解决问题,已花费了很多时间 ...

最新文章

  1. e4a编写文件服务器,e4a教程 联云服务器
  2. 迎接奥运会 里约把机场的IT建设翻新了下
  3. 麻省理工告诉我们男女配对的真相!
  4. 通过Apache Kafka集成流式传输大数据
  5. 每天五个java相关面试题(3)
  6. php动态获取函数参数
  7. phpStorm重构快捷键(mac系统、持续更新)
  8. Palindrome Degree(hash的思想题)
  9. 成功解决pycharm导入第三方库出现ReadTimeoutError超时的问题
  10. tx关于机器人的律师函_酷q、晨风等第三方机器人被封杀停运,余者纷纷跑路!...
  11. SQL 求同比 环比
  12. ENVI图像处理(1):ENVI影像处理基础
  13. Html页面Js调用android本地相机和图片
  14. 从张家界火车站如何去张家界玻璃桥游玩,最详细的张家界攻略
  15. matlab拟合多自变量函数,多个自变量的函数拟合问题
  16. [OpenGL] 非真实感渲染(NPR)的几种效果demo(水墨画/漫画/铅笔画)
  17. 最安全的微信群管理工具推荐
  18. React的render不是纯函数? triggering nested component updates from render is not allowed
  19. 炒股配资的杠杆是几倍?
  20. VS中Qt 开发——无法解析的外部符号 QMetaObject 解决办法

热门文章

  1. 日志20120104~0720
  2. 常用,易用,好看的第三方控件(.NET)
  3. 数字图像处理笔记 第五章 图像增强 附实验
  4. python字典的值保存为列表_Python遍历字典列表并保存到db
  5. 梦幻西游维护公告里面的可转服务器,梦幻西游:大量服务器即将开放平转,跨服倒卖人人都能做...
  6. 教你用Python计算对量化交易至关重要的VWAP指标
  7. sklearn 回归 算法 最小二乘法
  8. Java探针--javaagent--使用/实例
  9. 打开网页时出现504错误是什么
  10. 跳转到文字转语音设置界面