springboot的跨域
https://www.cnblogs.com/520playboy/p/7306008.html
1、对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。
针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处理。
但是jsonp方式也同样有不足,不管是对于前端还是后端来说,写法与我们平常的ajax写法不同,同样后端也需要作出相应的更改。并且,jsonp方式只能通过get请求方式来传递参数,当然也还有其它的不足之处,针对于此,我并没有急着使用jsonp的方式来解决跨域问题,去网上找寻其它方式,也就是本文主要所要讲的,在springboot中通过cors协议解决跨域问题。
2、Cors协议
H5中的新特性:Cross-Origin Resource Sharing(跨域资源共享)。通过它,我们的开发者(主要指后端开发者)可以决定资源是否能被跨域访问。
cors是一个w3c标准,它允许浏览器(目前ie8以下还不能被支持)像我们不同源的服务器发出xmlHttpRequest请求,我们可以继续使用ajax进行请求访问。
具体关于cors协议的文章 ,可以参考http://www.ruanyifeng.com/blog/2016/04/cors.html 这篇文章,讲的相当不错。
3、在springboot中如何通过cors协议解决跨域问题
springmvc4.2版本增加了对cors的支持。
目前我所做的项目基本都是springboot进行开发,所以我这里贴下在springboot中的使用。

@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter{ @Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}

可以在addMapping中配置我们的路径。/**代表所有路径。
当然也可以修改其它属性

@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter{ @Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://192.168.1.97")
.allowedMethods("GET", "POST")
.allowCredentials(false).maxAge(3600);
}

以上两种,都是针对全局配置,如果你想做到更细致也可以使用@CrossOrigin这个注解在controller类中使用。
@CrossOrigin(origins = "http://192.168.1.97:8080", maxAge = 3600)
@RequestMapping("rest_index")
@RestController
public class IndexController{
这样就可以指定该controller中所有方法都能处理来自http:19.168.1.97:8080中的请求。
springboot的跨域的更多相关文章
- SpringBoot实现跨域
一.什么是跨域请求? 跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样.说白了就是ip.网络协议.端口都一样的时候,就是同一个域,否则就是跨域.这是由 ...
- Springboot实现跨域请求
之所以需要用到跨域请求,目的在于现在的Java项目,几乎基本上都前后端分离,除一些较老的维护项目外(通常是单体或者是maven多模块形式,不过本质上还是将前端放在webapps下). SpringBo ...
- SpringBoot解决跨域请求拦截
前言 同源策略:判断是否是同源的,主要看这三点,协议,ip,端口. 同源策略就是浏览器出于网站安全性的考虑,限制不同源之间的资源相互访问的一种政策. 比如在域名https://www.baidu.co ...
- SpringBoot Ajax跨域问题(session共享问题)
ajax 发送post请求至springBoot出现跨域问题 需要在springBoot加上注解 @CrossOrigin 就能解决 报错信息 前端js代码 如果用上面的方式,session不能共享 ...
- Angular2发送HTTP请求SpringBoot后台跨域问题解决
Angular通过http发送post请求至SpringBoot的Controller,由于同源策略的保护,遇到跨域问题: • 源(origin)就是协议(http).域名(localhost)和端口 ...
- Springboot CORS跨域访问
Springboot CORS跨域访问 什么是跨域 浏览器的同源策略限制: 它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础 ...
- springboot解决跨域问题(Cors)
1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现. 针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处 ...
- SpringBoot多跨域请求的支持(JSONP)
在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的JSONP数据,而在4.1版本以后的SpringMVC中,为我们提供了一个AbstractJsonpResponseBod ...
- springboot +element-axios跨域请求
1.初始化element项目 1.1:vue init webpage '项目名称' 1.2:npm i element-ui -S 1.3:在main.js添加 import ElementUI f ...
随机推荐
- 高级程序设计JavaScript
JavaScript简介 一.因何而生: 方便 表单验证操作(输入验证器) 1995年 2月 Netscape 布兰登 艾奇 JavaScript是一种专门为与网页交互而设计的脚本语言. 二.实现组成 ...
- 树莓派3代b型静态IP设置,和ssh的wlan配置
https://blog.csdn.net/qq_36305492/article/details/78607557
- Linux 第七周实验 及总结
姬梦馨 原创作品 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第七周 Linux内核如何装载和启动一 ...
- Java源码--Array
1. Arrays.asList() 该方法是将数组转化为List,需要注意以下几点: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolea ...
- 软件工程项目之摄影App(第二次冲刺)
第二次冲刺阶段做出了登录,还有首页.基本界面也成型了. 登录验证码是用了mob的验证码skd.
- 作业二 —— 分布式版本控制系统Git的安装与使用
作业要求源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 1.安装Git,配置用户名与邮箱. 安装Windows版的Git ...
- Linux 清楚历史history命令的一个简单方法
有时候做了一些历史记录 不想让别人知道, 发现最简单的办法是 set HISTSIZE=0 然后 history 就没有历史记录命令了 然后为了能用上下键进行历史命令使用 再 set HISTSIZE ...
- Linux基础学习(1)--Linux系统简介
第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...
- fopen
转自http://blog.sina.com.cn/s/blog_4b986f1a0101349k.html matlab中fopen函数在指定文件打开的实例如下: *1)“fopen”打开文件,赋予 ...
- python矩阵水平镜像
方法1: label = label.T[::-1].transpose() 方法2: label = label[:,::-1] 方法3: 使用 numpy.fliplr https://docs. ...