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 相关文章推荐
window.parent调用父框架时 ie跟火狐不兼容问题
Jul 30 Javascript
关于可运行代码无法正常执行的使用说明
May 13 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
jQuery学习笔记之总体架构
Jun 03 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
Apr 07 Javascript
详解如何用VUE写一个多用模态框组件模版
Sep 27 Javascript
JavaScript中import用法总结
Jan 20 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
Dec 23 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 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
PHP中图片等比缩放的实例
2013/03/24 PHP
PHP可变变量学习小结
2015/11/29 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
详解Bootstrap插件
2016/04/25 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python的词法分析与语法分析
2013/05/18 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
Django开发的简易留言板案例详解
2018/12/04 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
初中生学习的自我评价
2013/11/14 职场文书
一年级学生期末评语
2014/04/21 职场文书
国旗下的演讲稿
2014/05/08 职场文书
小学开学标语
2014/07/01 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android