本文介绍了从chrome延伸器的弹簧靴上交叉原点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的春季申请中,我有一个方法:

In my spring application, I have a method:

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

我希望所有应用程序都可以访问它,所以我把 @CrossOrigin(origins = / **) 。但是,当我尝试这样做时,它运行时没有任何抱怨。

I want that all the application can access it, so I have put that @CrossOrigin(origins="/**"). But when I try to do so, it runs without any complain.

这是我从chrome扩展程序发送数据的方式:

This is how I'm sending data from a chrome extension:

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

但是客户端仍然无法访问它,如何解决?

But client still can't access this, how this can be solved?

推荐答案

在我的 @中SpringBootApplication 注释的类,我添加了这个:

In my @SpringBootApplication annoted class, I added this :

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

manifest.json

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

现在可以使用了。

这篇关于从chrome延伸器的弹簧靴上交叉原点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 22:04