报错信息
因为 jQuery 本身并不直接支持跨域请求。跨域请求是由浏览器的同源策略(Same-Origin Policy)所限制的,而不是由 JavaScript 库本身决定的。
所以要在 jQuery 中实现跨域请求可以采用
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:20002") // 允许跨域请求的域名
.allowedMethods("Get", "Post") // 允许的请求方法
.allowCredentials(true); // 是否允许发送Cookie
}
}
addCorsMappings(CorsRegistry registry)
方法用于配置跨域资源共享规则。在这里,使用registry.addMapping("/**")
指定了对所有请求路径都生效的跨域配置。allowedOrigins("http://localhost:20002")
指定了允许跨域请求的域名为http://localhost:20002
,即只有来自该域名的请求会被允许。将allowedOrigins()中的内容替换为发起请求的地址
allowedMethods("GET", "POST")
指定了允许的HTTP请求方法为GET和POST,其他方法将被拒绝。allowCredentials(true)
表示允许发送身份验证信息(如Cookie),这样可以在跨域请求中携带认证信息。
Spring应用程序就会在处理跨域请求时遵循这些规则,允许指定域名的跨域请求,并限制允许的HTTP方法和是否发送认证信息。这样可以避免浏览器跨域请求被阻止的问题,确保跨域请求正常进行
最后在要访问的地方的加上 @CrossOrigin() 注解便可正常进行跨域访问