产生这个错误的原因:

1.前后端的域名不一致,会产生跨域问题

2.前后端的域名一样,但是端口不一样,也一样会产生跨域问题,比如:http://localhost:8081/http://localhost:8080/

解决方法:

方法一:在java添加配置类

其中AppConfig类的具体实现代码如下:

@Configuration
public class AppConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowCredentials(false)
                    .allowedMethods("POST","GET","DELETE","PUT","OPTIONS")
                    .allowedOrigins("*");
    }
}

 方法二:使用nginx反向代理

1.如果你电脑还没下载nginx,可以去nginx官网进行下载,nginx官网链接:nginx newsicon-default.png?t=N5K3https://nginx.org/

2.下载完之后,打开其目录为:

 

 

其中conf文件夹是配置包,mall是自己创建用来存储前端的文件夹

 3.打开conf文件夹,再打开nginx.conf文件,进行配置

 4.nginx.conf文件需要修改的代码

    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           try_files $uri /login.html;
           root mall; ##修改为mall
	         index index.html index.htm home.html;
             proxy_pass http:localhost:8081;
        }
    }

其中 listen       8080;   server_name  localhost; 表示页面访问的地址是http://localhost:8080

try_files $uri /login.html;表示默认访问的页面是login.html这个页面

 root mall;表示前面第2步自己参加的用来存储前端的文件夹名字

proxy_pass http:localhost:8081;表示后端接口的地址

接着保存退出。

5.利用命令行运行nginx(要以管理员的身份运行)

 

在上面直接输入cmd进行打开命令行

 

 

 6.输入net start nginx启动nginx,输入net stop nginx停止nginx

net start nginx

 

net stop nginx

 总结:可以在Java使用配置类实现也可以使用nginx进行反向代理实现,你可以选择自己喜欢的方式实现噢~,有任何问题可以在评论区提出讨论噢~

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐