крест-накрест на пружинной накладке из хромированного удлинителя - PullRequest
1 голос
/ 03 ноября 2019

В моем весеннем приложении у меня есть метод:

@CrossOrigin(origins="*")
@PostMapping("/datum")
Datum test(@RequestBody String data) {
    return repository.save(new Datum(data));
}

Я хочу, чтобы все приложения могли получить к нему доступ, поэтому я поставил @CrossOrigin(origins="/**"). Но когда я пытаюсь это сделать, он запускается без каких-либо жалоб.

Вот как я отправляю данные из расширения Chrome:

var request = new XMLHttpRequest();
let url='http://localhost:8080/datum';
let data=JSON.stringify({ "data": body});
request.open('POST', url, true);
request.setRequestHeader("Content-Type", "application/json");
request.send(data);

Мой манифест расширения:

"permissions": [
    "activeTab",
    "tabs",
    "<all_urls>",
    "background",
    "http://*/*",
    "https://*/*",
    "http://localhost:8080/datum"
],

Дает мне ошибку 403

Но клиент по-прежнему не может получить к этому доступ, как это можно решить?

1 Ответ

1 голос
/ 05 ноября 2019

В моем @SpringBootApplication аннотированном классе я добавил это:

@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("*");
            }
        };
    }

И в manifest.json:

"permissions": [
    "activeTab",
    "tabs",
    "background",
    "http://*/"
  ]

Теперь это работает.

...