springboot跨域配置

From: https://www.cnblogs.com/nananana/p/8492185.html

前言:

当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。
比如说,域名A ( http://domaina.example ) 的某 Web 应用程序中通过< img>标签引入了域名B( http://domainb.foo ) 站点的某图片资源(http://domainb.foo/image.jpg),域名A的那 Web 应用就会导致浏览器发起一个跨站 HTTP 请求。
在当今的 Web 开发中,使用跨站 HTTP 请求加载各类资源(包括CSS、图片、JavaScript 脚本以及其它类资源),已经成为了一种普遍且流行的方式。
正如大家所知,出于安全考虑,浏览器会限制脚本中发起的跨站请求。比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守同源策略。 具体而言,Web 应用程序能且只能使用 XMLHttpRequest对象向其加载的源域名发起 HTTP 请求,而不能向任何其它域名发起请求。为了能开发出更强大、更丰富、更安全的Web应用程序,开发人员渴望着在不丢失安全的前提下,Web 应用技术能越来越强大、越来越丰富。比如,可以使用 XMLHttpRequest
发起跨站 HTTP 请求。(这段描述跨域不准确,跨域并非浏览器限制了发起跨站请求,而是跨站请求可以正常发起,但是返回结果被浏览器拦截了。最好的例子是CSRF跨站攻击原理,请求是发送到了后端服务器无论是否跨域!注意:有些浏览器不允许从HTTPS的域跨域访问HTTP,比如Chrome和Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是一个特例。
引自:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

 

方法一:新增一个configration类 或 在Application中加入CorsFilter和CorsConfiguration方法

复制代码

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;  @Configuration  
public class CorsConfig {  private CorsConfiguration buildConfig() {  CorsConfiguration corsConfiguration = new CorsConfiguration();  corsConfiguration.addAllowedOrigin("*"); // 1允许任何域名使用corsConfiguration.addAllowedHeader("*"); // 2允许任何头corsConfiguration.addAllowedMethod("*"); // 3允许任何方法(post、get等) return corsConfiguration;  }  @Bean  public CorsFilter corsFilter() {  UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();  source.registerCorsConfiguration("/**", buildConfig()); // 4  return new CorsFilter(source);  }  
}  

复制代码

方法二:使用Filter方式

复制代码

import javax.servlet.*;  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  @Component  
public class CorsFilter implements Filter {  final static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CorsFilter.class);  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");  System.out.println("*********************************过滤器被使用**************************");  chain.doFilter(req, res);  }  public void init(FilterConfig filterConfig) {}  public void destroy() {}  
}  

复制代码

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

l2正则化

在机器学习中&#xff0c;无论是分类还是回归&#xff0c;都可能存在由于特征过多而导致的过拟合问题。当然解决的办法有 &#xff08;1&#xff09;减少特征&#xff0c;留取最重要的特征。 &#xff08;2&#xff09;惩罚不重要的特征的权重。 但是通常情况下&#xff0c;我们…

机房收费系统的合作版

概述 机房收费系统的合作版自己负责的是B层和Facade层&#xff0c;在做这块的时候有很多的感触&#xff1a;动态SQL语句&#xff1b;设计模式&#xff1b;合作开发应该注意的点。其中动态SQL语句的理解已经在上一篇博客中写了&#xff0c;如果你有意向的话&#xff0c;可以看一…

ajax跨域,这应该是最全的解决方案了

From: https://segmentfault.com/a/1190000012469713 前言 从刚接触前端开发起&#xff0c;跨域这个词就一直以很高的频率在身边重复出现&#xff0c;一直到现在&#xff0c;已经调试过N个跨域相关的问题了&#xff0c;16年时也整理过一篇相关文章&#xff0c;但是感觉还是差…

如何导入ShareSDK的sample

由于项目需要&#xff0c;最近需要做10几个平台的分享&#xff0c;如果自己去集成&#xff0c;浪费很多时间&#xff0c;而且还很难成功。最后发现Sharesdk,可以满足项目需求。 首先&#xff0c;需要到他们的官网http://sharesdk.cn/下载android版本的SDK。 然后玩了一下他们的…

EF5.x Code First 一对多关联条件查询,Contains,Any,All

背景 通过多个部门id获取所有用户&#xff0c;部门和用户是多对多。 已知部门id&#xff0c;获取该部门包括该部门下的所有子部门的所有用户。 关系如下&#xff1a; public class Entity:IEntity{public Guid Id { get; set; }public string CreateUser { get; set; }public D…

Spring5:@Autowired注解、@Resource注解和@Service注解

From: https://www.cnblogs.com/szlbm/p/5512931.html 什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物&#xff0c;这么做有两个缺点&#xff1a; 1、如果所有的内容都配置在.xml文件中&#xff0c;那么.xml文件将会十分庞大&#xff1b;如…

CCNA实验(8) -- PPP HDLC

HDLC帧格式与以太帧格式有很大差别&#xff0c;HDLC帧没有源MAC和目的MAC地址。HDLC不能提供验证&#xff0c;缺少对链路保护。Cisco设备与Cisco设备连接&#xff0c;可用HDLC封装。Cisco设备与非Cisco设备连接&#xff0c;应使用PPP协议。PPP经过4个过程在点到点链路上建立连接…

不使用中间变量交换2个数据

2019独角兽企业重金招聘Python工程师标准>>> 第一种方法&#xff1a; <!-- lang: cpp -->aab;ba-b;aa-b;可能产生越界和溢出。 第二种方法&#xff1a; <!-- lang: cpp -->aa^b;ba^b;aa^b;这种方法只适用整形数。 写成宏的形式 <!-- lang: cpp -->…

slf4j的简单用法以及与log4j的区别

From: https://www.cnblogs.com/qlqwjy/p/9275415.html 之前在项目中用的日志记录器都是log4j的日志记录器&#xff0c;可是到了新公司发现都是slf4j&#xff0c;于是想着研究一下slf4j的用法。 注意:每次引入Logger的时候注意引入的jar包&#xff0c;因为有Logger的包太多了。…

JdbcType类型和Java类型的对应关系

From: https://www.cnblogs.com/tongxuping/p/7134113.html 在Oracle中有些字段不是必填时在用户使用的时候会出现数据null的情况。这个时候在Oracle中是无法进行插入的。 1 JDBC Type Java Type 2 CHAR String 3 VARCHAR String 4 L…

MyBatis Generator配置文件翻译

From: https://www.cnblogs.com/GaiDynasty/p/4088531.html <classPathEntry> 驱动文件指定配置项 <classPathEntry location"/Program Files/IBM/SQLLIB/java/db2java.zip" /> <columnOverride> 将数据库中的字段重命名为实体类的属性 colu…

SpringBoot系列十:SpringBoot整合Redis

From: https://www.cnblogs.com/leeSmall/p/8728231.html 声明&#xff1a;本文来源于MLDN培训视频的课堂笔记&#xff0c;写在这里只是为了方便查阅。 1、概念&#xff1a;SpringBoot 整合 Redis 2、背景 Redis 的数据库的整合在 java 里面提供的官方工具包&#xff1a;j…

海贼王革命家—龙—实力到底如何?

龙——整个海贼王世界中最神秘的人物&#xff0c;令世界政府最担心的存在&#xff0c;是所有迷最为期待的实力展现&#xff0c;他的身上好像有着无数的秘密等着尾田为我们揭晓。 路飞的父亲——未来的海贼王、卡普的儿子——海军英雄、革民军首领——唯一可以跟世界政府抗衡的组…

MyBatis 实践

From&#xff1a; https://www.cnblogs.com/luyiba/p/6303717.html MyBatis简介 MyBatis前身是iBatis,是一个基于Java的数据持久层/对象关系映射(ORM)框架. MyBatis是对JDBC的封装,使开发人员只需关注SQL本身,而不需花费过多的精力去处理如注册驱动、设置参数、创建Connectio…

皮克斯背后新技术

2019独角兽企业重金招聘Python工程师标准>>> 皮克斯每创作一部动画作品总会给观众带来或多或少的惊喜&#xff0c;而很多影视动画从业人员也习惯于关注他们的每一部作品的制作&#xff0c;因为新技术往往就在这些制作过程中诞生&#xff0c;如今皮克斯动画已经成为C…

数据结构:二叉查找树(C语言实现)

数据结构&#xff1a;二叉查找树 二叉查找树 基础知识 关于二叉树的基础知识&#xff0c;请看我的一篇博客:二叉树的链式存储 二叉查找树的特征 二叉查找树或者是一棵空树&#xff0c;或者是具有下列性质的二叉树&#xff1a;  1.若其左子树不空&#xff0c;则左子树上所有结…

Effective Java 电子书 apk版本下载

下载安装包以后&#xff0c;安装即可阅读该书了&#xff0c;并且实时展示每章节代码哦&#xff0c;并且可以运行哦&#xff0c;赶快下载体验吧. Effective Java中文第二版下载地址&#xff1a;下载 应用截图&#xff1a; 转载于:https://www.cnblogs.com/spring87/p/6090010.ht…

给你的Mr.Right画张择偶地图像

爱一个人就算做不到爱他的全部&#xff0c;至少也应该尊重他的真实&#xff0c;而不是苛求他变成你想要的样子。 娶妻当娶郭芙蓉&#xff0c;经典语录。我是郭芙蓉&#xff0c;我不会武功&#xff0c;我来自江湖&#xff0c;我与众不同。再苦再累&#xff0c;就当自己是二百五&…

java实现HTTP请求的三种方式

From: https://www.cnblogs.com/hhhshct/p/8523697.html 目前JAVA实现HTTP请求的方法用的最多的有两种&#xff1a;一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错&#xff0c;通过它基本上能够满足我们大部分的需求&#xff0c;HttpClien…

SpringBoot时间戳与MySql数据库记录相差14小时排错

From: http://www.cnblogs.com/jason1990/archive/2018/11/28/10032181.html 项目中遇到存储的时间戳与真实时间相差14小时的现象,以下为解决步骤. 问题 CREATE TABLE incident (id int(11) NOT NULL AUTO_INCREMENT,created_time timestamp NOT NULL DEFAULT CURRENT_TIMES…