本文介绍了spring-boot 允许接口跨域并实现拦截(CORS),分享给大家,也给自己留个笔记

pom.xml(依赖的jar)
// 在spring-boot-starter-web的启动器中,已经依赖好了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
CORS跨域的配置(主要配置允许什么样的方法跨域)
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.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Msater Zg on 2017/4/3.
*/
@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT")
.maxAge(3600);
}
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
List<String> list = new ArrayList<>();
list.add("*");
corsConfiguration.setAllowedOrigins(list);
/*
// 请求常用的三种配置,*代表允许所有,当时你也可以自定义属性(比如header只能带什么,只能是post方式等等)
*/
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}
拦截器配置(可以根据不同路径,配置不同的拦截器)
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Created by Msater Zg on 2017/4/5.
* 拦截器
*/
public class ApiInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 请求前调用
System.out.println("拦截了");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// 请求过程中调用
System.out.println("拦截了");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 请求完成时调用
System.out.println("拦截了");
}
}
拦截器管理类,用于生成项目的拦截器链
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* Created by Msater Zg on 2017/4/5.
* 拦截器管理工具
*/
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 多个拦截器组成一个拦截器链
// addPathPatterns 用于添加拦截规则
// excludePathPatterns 用户排除拦截
registry.addInterceptor(new ApiInterceptor()).addPathPatterns("/user/**"); //对来自/user/** 这个链接来的请求进行拦截
super.addInterceptors(registry);
}
}
结语
实现跨域的方式有很多,这只是其中一种。有什么不对的地方希望能及时指出。谢谢!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# boot
# cors跨域拦截
# springboot
# 跨域
# 接口跨域
# Apache中配置支持CORS(跨域资源共享)实例
# JS跨域解决方案之使用CORS实现跨域
# js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
# Node.js设置CORS跨域请求中多域名白名单的方法
# vue+springboot实现项目的CORS跨域请求
# 浅谈Koa2框架利用CORS完成跨域ajax请求
# 跨域解决之JSONP和CORS的详细介绍
# C# WebApi CORS跨域问题解决方案
# react中fetch之cors跨域请求的实现方法
# 跨域(CORS)问题的解决方案分享
# 拦截器
# 有什么
# 好了
# 多个
# 有很多
# 希望能
# 给大家
# 三种
# 这只
# 自定义
# 能带
# 可以根据
# 也给
# 你也可以
# 大家多多
# 留个
# 管理类
# 过程中
# 器中
# util
相关文章:
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何获取PHP WAP自助建站系统源码?
Python lxml的etree和ElementTree有什么区别
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
公众号网站制作网页,微信公众号怎么制作?
如何在IIS服务器上快速部署高效网站?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
定制建站哪家更专业可靠?推荐榜单揭晓
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
郑州企业网站制作公司,郑州招聘网站有哪些?
如何在万网ECS上快速搭建专属网站?
网站制作软件有哪些,制图软件有哪些?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何选择香港主机高效搭建外贸独立站?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
家庭服务器如何搭建个人网站?
如何解决ASP生成WAP建站中文乱码问题?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何破解联通资金短缺导致的基站建设难题?
如何快速搭建高效WAP手机网站吸引移动用户?
如何在IIS中配置站点IP、端口及主机头?
建站之星如何优化SEO以实现高效排名?
香港服务器租用费用高吗?如何避免常见误区?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
个人网站制作流程图片大全,个人网站如何注销?
北京制作网站的公司,北京铁路集团官方网站?
,网站推广常用方法?
IOS倒计时设置UIButton标题title的抖动问题
如何使用Golang table-driven基准测试_多组数据测量函数效率
建站主机是什么?如何选择适合的建站主机?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
油猴 教程,油猴搜脚本为什么会网页无法显示?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何在Windows 2008云服务器安全搭建网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
Swift中switch语句区间和元组模式匹配
c# 服务器GC和工作站GC的区别和设置
建站之星安装步骤有哪些常见问题?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
大连网站设计制作招聘信息,大连投诉网站有哪些?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
,南京靠谱的征婚网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。