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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
JavaScript 指导方针
Apr 05 Javascript
各种常用的JS函数整理
Oct 25 Javascript
Javascript中对象继承的实现小例
May 12 Javascript
用js的document.write输出的广告无阻塞加载的方法
Jun 05 Javascript
jQuery简单tab切换效果实现方法
Apr 08 Javascript
Javascript使用post方法提交数据实例
Aug 03 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 Vue.js
使用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 图像处理类1
2009/06/15 PHP
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
常见python正则用法的简单实例
2016/06/21 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
详解Python3 基本数据类型
2019/04/19 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
爱护公共设施演讲稿
2014/09/13 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
迎新生标语大全
2014/10/06 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
护理专业自荐信范文
2015/03/06 职场文书
农业项目投资意向书
2015/05/09 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
Redis过期数据是否会被立马删除
2022/07/23 Redis
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python