Доступ к XMLHttpRequest по адресу 'http: // localhost: 8080 from origin' http: // localhost: 4200 'заблокирован политикой CORS.

Это метод из моего компонента:

onDelete(s) {
    const conf = confirm('etes vous sur');
    if (conf) {
         console.log(s._links.self.href);
      this.catservice.Deleteprod(s._links.self.href).subscribe(data => {console.log(s._links.self.href);
      }, error1 => {
        console.log(error1);
      });
    }
  }

и это метод из моей службы:

  public Deleteprod(url) {
    return this.httpClient.delete(url);
  }

Я хочу удалить этот объект с помощью s._links.self.href, поэтому url не является неправильным, но у меня возникает эта проблема, когда я пытаюсь создать класс websecurityconfig с ее методами, которые я пробовал с @CrossOrigin(origins = "*"), но нет решения, пожалуйста, помогите мне.

Это моя ошибка:

Access to XMLHttpRequest at 'http://localhost:8080/offres/24' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

это моя ошибка, я восстановил объект, но не могу его удалить


person LIMEM MohamedAmine    schedule 10.03.2020    source источник
comment
Вставьте класс WebSecurityConfig, а также класс контроллера, из которого вызывается ваша служба Deleteprod. Я считаю, что @CrossOrigin(origins = { "http://localhost:4200"}) поверх класса Controller должен работать.   -  person Manan Shah    schedule 10.03.2020
comment
@CrossOrigin (origins = {localhost: 4200}, allowedHeaders = {Accept}) @DeleteMapping (value = / delete / { id}) public void Delete (@PathVariable (name = id) Long id) {offreRepositiory.deleteById (id); }   -  person LIMEM MohamedAmine    schedule 10.03.2020


Ответы (3)


Добавьте следующую аннотацию под аннотацией @RestController

@CrossOrigin(origins = "*", allowedHeaders = "*")
person GoodKnightRob    schedule 28.04.2020

в веб-безопасности

@Bean
    CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new
                UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
        return source;
    }


    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**")
                .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")
                .exposedHeaders("Authorization");
    }
person LIMEM MohamedAmine    schedule 10.03.2020
comment
отображение предназначено для /api/, но вы звоните /offres/? - person Manan Shah; 11.03.2020

Я решил ту же проблему, добавив в SecuityConfig следующий код:

http.
   ..... //other code
   .authorizeRequests()
   .antMatchers(HttpMethod.OPTIONS).permitAll()
   ..... //other code
person Mohamed Amine EL YOUSSR    schedule 18.10.2020