XmlHttpRequest 请求的资源上没有 'Access-Control-Allow-Origin' header - Chrome 浏览器

XmlHttpRequest No 'Access-Control-Allow-Origin' header is present on the requested resource - Chrome browser

我已经为 return json object 创建了一个 java 服务。它在邮递员中运行良好,但是当我使用 chrome 浏览器尝试时,我遇到了以下错误

CORS policy issue

代码:

var xhttp = new XMLHttpRequest();
var url = 'http://localhost:8030/information/agent111';
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
       console.log(this)
    }
};
xhttp.open("GET", url, true);
xhttp.setRequestHeader('Content-Type', 'application/json' );
xhttp.setRequestHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
xhttp.setRequestHeader('Access-Control-Allow-Headers', 'http://localhost:8080');
xhttp.setRequestHeader('Access-Control-Allow-Methods', 'GET');
xhttp.setRequestHeader('Access-Control-Allow-Credentials', false);
xhttp.send();

错误:

Spring开机java服务主要功能:

@Bean
    public WebMvcConfigurer configure() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry corsRegistry) {
                corsRegistry.addMapping("/**").allowedOrigins("http://localhost:8080/");
            }
        };
    }

您需要让您的控制器知道请求的来源。 要修复 cors 问题,请将以下代码添加到您的控制器。 您可以尝试使用通配符

@CrossOrigin(origins = "*")

@CrossOrigin(origins = "http://localhost:8080" , allowCredentials = "true")