有办法解决跨域错误吗?

问题描述 投票:0回答:1

我有一个问题。我的项目是两个 Spring Boot,它们通过 Resttemplate 连接在一起(我已经为它制作了一个 bean)。

我的项目是这样的,信息以json的形式从第一个项目的前面导入,没有任何更改地发送到第二个项目,并在那里注册到数据库中。

该项目在所有 4 种方法中都没有错误。问题是,当我想通过具有不同 IP 的另一个系统访问该项目时,它会给出错误,并且我无法执行任何操作(构建、读取等)。它不起作用,但它显示 html 页面)。我无法使用 @CrossOrgin 注释来修复它。有人可以帮我吗?

前面使用:html & js

后端:java、spring boot 和 hibernate

数据库:oracle

我在我的控制器方法上尝试了@Cross origin。

javascript java spring spring-boot hibernate
1个回答
0
投票

请注意,由于安全问题,交叉呼叫默认处于禁用状态,并在启用之前进行进一步研究,以避免任何尴尬的意外。

URL 示例:{在此输入进行调用的服务器的 URL} = "http://serverhost:serverport"

尝试在你的SpringBoot后端项目中创建一个与此类似的配置类:

package {Put here your conf package}

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class CorsConf {
    
    
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        
        return new WebMvcConfigurer() {
            
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedOrigins("{Put here the URL of the server that makes the call}");
            }           
            
        };
        
    }

    
}

尝试更好地指定允许的映射(“/**” -> 这意味着任何 URL 都可以进行交叉调用,最好只限制您想要使用的映射)

© www.soinside.com 2019 - 2024. All rights reserved.