前后端访问报错

发布时间:2023年12月30日

今天做前后端分离的项目时, 前端向后台发送请求发现报错: Access to XMLHttpRequest at ‘http://localhost:8082/doLogin’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

解决CORS跨域问题

1.SpringBoot项目解决方案:

package org.example.config;

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



@Configuration
public class WebMVC implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //本应用的所有方法都会去处理跨域请求
        registry.addMapping("/**")
                //允许远端访问的域名
                .allowedOrigins("http://localhost:8080")
                //允许请求的方法("POST", "GET", "PUT", "OPTIONS", "DELETE")
                .allowedMethods("*")
                //允许请求头
                .allowedHeaders("*");
    }

}

2.SpringBoot+Spring Security项目解决方案(在以上代码的基础上)

protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        ...
        .cors()
        .and()
        ...
}

延伸拓展
同源策略:
概念: 要求协议、域名以及端口要相同,才能进行请求和响应
作用: 网络请求更安全, 并且所有支持JavaScript的浏览器都支持的安全策略
如果不支持可能造成的问题
不良分子会利用登录时用户的信息进行不当操作
举例: 点击恶意链接中包含<img src="http://xxx.com/pay?xxx=xx"> , 就会把自己的重要信息泄漏.
?

文章来源:https://blog.csdn.net/m0_62943934/article/details/135231529
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。