Ajax请求是否会出现跨域问题,取决于Ajax请求的contentType类型,这里简单试了几个contentType类型:
当满足跨域要求(协议、ip、端口至少有一个不一致)时,如果当前端Ajax请求的contentType类型为text/plain或application/x-www-form-urlencoded或multipart/form-data等时,不会发生跨域问题;而当前端contentType为application/json或text/html等时,会发生跨域问题。
全局解决跨域
只需要在springboot项目里面添加一个配置类,里面的代码是
这个就是在springmvc的配置类里面重写了 跨域的方法
@Configuration
public class CorsConfigure extends WebMvcConfigurationSupport {
/* * 这里主要为了解决跨域问题,所以重写addCorsMappings方法 */
@Override
protected void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.exposedHeaders("access-control-allow-headers",
"access-control-allow-methods",
"access-control-allow-origin",
"access-control-max-age",
"X-Frame-Options")
.allowCredentials(false).maxAge(3600);
super.addCorsMappings(registry);
}
}
以后重新启动项目的时候,跨域的问题就解决了,这个有跨域的问题,前端会报403错误
allowedOrigins:是允许访问的列表(origins=“网址”)
maxAge:准备响应前的 缓存持续的 最大时间
局部解决跨域
以上的是在整个项目里面解决了跨域,现在我们就想解决一个controller层,可以使用注解