From 0fe47875786d7eb5882ea455e11281c8bc41fd4b Mon Sep 17 00:00:00 2001 From: odin <2441164168lhd@gmail.com> Date: Wed, 2 Nov 2022 13:55:03 +0800 Subject: [PATCH] cross-domain configuration passed --- .../TranscriptionApplication.java | 1 - .../config/CorsConfig.java | 44 +++++++++++++++++++ .../controller/TranscriptionController.java | 1 + .../src/main/resources/test.http | 2 + 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/config/CorsConfig.java diff --git a/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/TranscriptionApplication.java b/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/TranscriptionApplication.java index 0f0f2c7..a15ab74 100644 --- a/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/TranscriptionApplication.java +++ b/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/TranscriptionApplication.java @@ -6,7 +6,6 @@ @SpringBootApplication public class TranscriptionApplication { public static void main(String[] args) { - // 注:这里传入的字段码对象,必需是声明了@SpringBootApplication的类 //启动SpringBoot程序 SpringApplication.run(TranscriptionApplication.class, args); } diff --git a/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/config/CorsConfig.java b/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/config/CorsConfig.java new file mode 100644 index 0000000..6561b50 --- /dev/null +++ b/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/config/CorsConfig.java @@ -0,0 +1,44 @@ +package com.pianotranscriptioncli.config; + +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; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class CorsConfig implements WebMvcConfigurer { + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") // 项目中的所有接口都支持跨域 + .allowedOriginPatterns("*") // 所有地址都可以访问,也可以配置具体地址 + .allowCredentials(true) + .allowedMethods("*") // "GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS" + .maxAge(360000); // 跨域允许时间 + } + + @Bean + public CorsFilter corsFilter() { + // 1.添加CORS配置信息 + CorsConfiguration config = new CorsConfiguration(); + // 放行哪些原始域 + config.addAllowedOrigin("*"); + // 是否发送Cookie信息 + config.setAllowCredentials(true); + // 放行哪些原始域(请求方式) + config.addAllowedMethod("*"); + // 放行哪些原始域(头部信息) + config.addAllowedHeader("*"); + // 暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息) + config.addExposedHeader("*"); + + // 2.添加映射路径 + UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); + configSource.registerCorsConfiguration("/**", config); + + // 3.返回新的CorsFilter. + return new CorsFilter(configSource); + } +} diff --git a/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/controller/TranscriptionController.java b/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/controller/TranscriptionController.java index c7be870..d5bda29 100644 --- a/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/controller/TranscriptionController.java +++ b/OmgPianoTranscription/pianotranscriptioncli/src/main/java/com/pianotranscriptioncli/controller/TranscriptionController.java @@ -15,6 +15,7 @@ import java.io.IOException; @RestController +// @CrossOrigin(origins = "*", maxAge = 360000) // 不能和CorsConfig同时使用 @RequestMapping("/transcription") public class TranscriptionController { diff --git a/OmgPianoTranscription/pianotranscriptioncli/src/main/resources/test.http b/OmgPianoTranscription/pianotranscriptioncli/src/main/resources/test.http index 1231da3..9aadd76 100644 --- a/OmgPianoTranscription/pianotranscriptioncli/src/main/resources/test.http +++ b/OmgPianoTranscription/pianotranscriptioncli/src/main/resources/test.http @@ -1,3 +1,5 @@ +# 模拟发送POST测试,运行环境设置为DEV + ### POST {{host}}/mp3ToMidiWithFile Content-Type: multipart/form-data; boundary=WebAppBoundary