Spring boot 和Vue开发中CORS跨域问题解决


Posted in Javascript onSeptember 05, 2018

跨域资源共享CORS(Cross-origin Resource Sharing),是W3C的一个标准,允许浏览器向跨源的服务器发起XMLHttpRequest请求,克服ajax请求只能同源使用的限制。关于CORS的详细解读,可参考阮一峰大神的博客:跨域资源共享CORS详解。

1. 遇到的问题:

我用spring-boot 做Rest服务,Vue做前端框架,用了element-admin-ui这个框架做后台管理。在调试的过程中遇到了如下错误:

Preflight response is not successful

2. 分析问题

这个问题是典型的CORS跨域问题。

所谓跨域:

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。

3. 解决方法

在项目中添加类CustomCORSConfiguration 代码如下:

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;

/**
 * @author spartajet
 * @description
 * @create 2018-05-15 下午5:00
 * @email spartajet.guo@gmail.com
 */
@Configuration
public class CustomCORSConfiguration {
  private CorsConfiguration buildConfig() {
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    corsConfiguration.addAllowedOrigin("*");
    corsConfiguration.addAllowedHeader("*");
    corsConfiguration.addAllowedMethod("*");
    corsConfiguration.setAllowCredentials(true);
    return corsConfiguration;
  }

  @Bean
  public CorsFilter corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", buildConfig());
    return new CorsFilter(source);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js模拟实现Array的sort方法
Dec 11 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
Feb 04 Javascript
两个Javascript小tip资料
Nov 23 Javascript
JavaScript中的16进制字符(改进)
Nov 21 Javascript
删除javascript中注释语句的正则表达式
Jun 11 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
浅析JavaScript中break、continue和return的区别
Nov 30 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
Nov 19 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
使用jQuery给Table动态增加行、清空table的方法
Sep 05 #jQuery
jQuery常见的遍历DOM操作详解
Sep 05 #jQuery
浅谈react性能优化的方法
Sep 05 #Javascript
angularjs性能优化的方法
Sep 05 #Javascript
jQuery实现获取及设置CSS样式操作详解
Sep 05 #jQuery
在vue中给列表中的奇数行添加class的实现方法
Sep 05 #Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 #Javascript
You might like
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
php抓取页面的几种方法详解
2013/06/17 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
vue.js实现二级菜单效果
2019/10/19 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
js实现无缝轮播图
2020/03/09 Javascript
js实现3D旋转相册
2020/08/02 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
判断网页编码的方法python版
2016/08/12 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
神路信息Java面试题目
2013/03/31 面试题
汽车运用工程毕业生自荐信
2013/10/29 职场文书
房地产员工找工作的自我评价
2013/11/15 职场文书
公务员转正考察材料
2014/02/07 职场文书
心灵点滴观后感
2015/06/02 职场文书