как загрузить файл в весеннюю загрузку, используя angular 7? - PullRequest
0 голосов
/ 25 июня 2019

Чтобы загрузить файл в angular 7 для проекта весенней загрузки, я получаю 404 с ошибкой, заблокированной политикой CORS. угловой код :::

uploadFile(file: File){
        console.log("file to be uploaded...",file);
        const postData = new FormData();
        postData.append("file", file);
        this.http.post('http://localhost:8070/postFile',postData).subscribe(data=>{
            console.log("post succeessful.....",data);
        });    

весенний загрузочный код :::

@CrossOrigin(origins = "*")
            @PostMapping("/postFile")
            public ResponseDTO postFile(@RequestParam("file") MultipartFile file) {    


I have tried with @RequestPart as well here with same result.

когда я пытаюсь загрузить файл в первый раз, я получаю следующий журнал: Инициализация Spring DispatcherServlet 'dispatcherServlet' Инициализация сервлета «ДиспетчерСервлет» Завершена инициализация за 9 мс

После первой попытки весенняя загрузка не выдает никаких журналов, однако в браузере я мог видеть ниже журнал при каждой попытке.

POST http://localhost:8070/postFile 404    Zone.js
Access to XMLHttpRequest at 'http://localhost:8070/postFile' from origin 
'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Подскажите, пожалуйста, как загрузить файл в угловой + пружинной загрузке.

1 Ответ

0 голосов
/ 25 июня 2019

@CrossOrgin должно работать, но вы также можете попробовать это

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedMethods("*");
    }
}

или в @SpringBootApplication добавление класса

@Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.setAllowedOrigins(Collections.singletonList("*"));
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean<CorsFilter> filterRegistration = new FilterRegistrationBean<>(new CorsFilter(source));
        filterRegistration.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return filterRegistration;
    }
...