springboot vue 跨域问题的解决

作者:Sky786905664 时间:2023-01-26 00:53:57 

1、Spring Boot跨域配置有两种方法

在后端使用Spring Boot。Spring Boot跨域非常简单,只需书写以下代码即可。


@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);
}
}

2.Nginx跨域配置

Spring Boot应用用Nginx反向代理。而前端跨域请求的需求不减。

Nginx跨域也比较简单,只需添加以下配置即可。


location / {
proxy_pass http://localhost:8080;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Token';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Token';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Token';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Token';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Token';
}
}

其中:add_header 'Access-Control-Expose-Headers' 务必加上你请求时所带的header。

例如本例中的“Token”,其实是前端传给后端过来的。如果记不得也没有关系,浏览器的调试器会有详细说明。

三、浏览器设置跨域

Chrome、Firefox本身是可以通过配置支持跨域请求的。

Chrome跨域:参考文档:Chrome跨域

四、前端Vue设置跨域

先设置 axios


axios.defaults.withCredentials = true;
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; //证明是ajax 请求
psot 请求加入
headers: {
 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}

设置Config 文件下面的index.js 然后就可以再其它页面访问了

来源:https://blog.csdn.net/sky786905664/article/details/79189378

标签:spring,boot,vue,跨域
0
投稿

猜你喜欢

  • Android 实现闪屏页和右上角的倒计时跳转实例代码

    2022-12-10 17:32:32
  • Java并发线程池实例分析讲解

    2022-08-05 20:25:40
  • 解决Spring在Thread中注入Bean无效的问题

    2022-06-26 13:03:59
  • Ajax登录验证实现代码

    2022-02-22 10:47:51
  • C#将dll打包到程序中的具体实现

    2022-11-22 16:39:34
  • springboot ErrorPageFilter的实际应用详解

    2023-11-24 01:02:59
  • C#实现的上传图片、保存图片、加水印、生成缩略图功能示例

    2022-03-02 03:17:29
  • Android开发获取重力加速度和磁场强度的方法

    2022-05-27 23:07:09
  • C语言数据的存储专项分析

    2022-05-05 13:35:24
  • Java协程编程之Loom项目实战记录

    2023-10-23 17:44:06
  • Spark JDBC操作MySQL方式详细讲解

    2021-05-24 12:41:51
  • Android选项菜单用法实例分析

    2022-11-02 07:42:44
  • Android中使用Matrix控制图形变换和制作倒影效果的方法

    2022-11-23 07:35:23
  • SpringBoot配置自定义拦截器实现过程详解

    2022-11-04 17:24:48
  • Android屏幕旋转之横屏竖屏切换的实现

    2023-10-29 21:40:10
  • 教你轻松制作Android音乐播放器

    2022-09-28 01:19:28
  • Android recyclerview实现纵向虚线时间轴的示例代码

    2023-08-23 07:03:39
  • Java内部类及其特点的讲解

    2023-06-09 19:39:41
  • 简述Java图像倾斜方法及实例 <font color=red>原创</font>

    2023-08-16 09:38:47
  • windows下C#定时管理器框架Task.MainForm详解

    2021-06-06 13:59:06
  • asp之家 软件编程 m.aspxhome.com