Access to XMLHttpRequest at xxxx from origin ‘null‘ has been blocked by CORS policy:

使用前后端分离的方式创建web项目的时候出现问题:

在这里插入图片描述
这是因为 ajax 请求的对应的域在本地的一个文件路径,比如在D盘的某个文件夹,这里存放的都是前端文件;

但是对应的服务器是 localhost 的一个域名;

虽然请求可以到达服务端,服务端也可以处理,但是请求是无法进入ajax的success部分的。

springboot处理的方式是,在代码里面加上跨域的注解。

spring的官方文档有这个注解的解释,如下图

在这里插入图片描述

简单翻译一下:

这个注解会使得对应的方法支持跨域请求。

默认情况下,允许所有的 origin 和所有的 header ,以及所有的 controller 对应的HTTP方法。

allowedCredentials参数在默认情况下不启用,因为这会建立一个信任级别,这个级别会把用户的敏感信息(如cookies和CSRF令牌)公开,建议是只应在适当的情况下使用。

开始的时候加了:

@CrossOrigin

但是重启应用之后还是有问题,于是就加入了allowedCredentials参数,改成:

@CrossOrigin(allowCredentials = "true", allowedHeaders = "*")

然后成功。

猜你喜欢

转载自blog.csdn.net/weixin_42092787/article/details/107126439