菜鸟上路,有问题多多交流,好了,废话不说,最近自己做个demo,由于前后端分离了,于是使用了一下跨域,尝试网上的几种方法,不知道为什么使用过滤器的方式没有成功,没成功的我就不贴了。
注意:
项目:springboot demo
前端请求使用ajax
前端代码就不上传了,要注意一点的就是发请求的时候要全路径,http://192.168.0.103:8080/hello这样的
后端
直接你的controller包里面或其他包也可以直接添加以下文件
package com.example.controller;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CorsConfig {
@Bean
public FilterRegistrationBean corsFilter() {
System.out.println("join configur");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 设置你要允许的网站域名,如果全允许则设为 *
config.addAllowedOrigin("*");
// 如果要限制 HEADER 或 METHOD 请自行更改
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
// 这个顺序很重要哦,为避免麻烦请设置在最前
bean.setOrder(0);
return bean;
}
}
好了,现在前端可以直接发ajax请求了。get,post都没问题的
最后要注意你在controller里边对url设置的请求方式喔