1、jsonp跨域
在java后台
@ControllerAdvice(basePackages = "controller的pakage")
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice{
public JsonpAdvice() {
super("callback","jsonp");
}
}
在前端jquery中
$.ajax({
url: mgrHost+"/pkt/sj/allAlarm", // 提交url 注意url必须小写
type: "get", // 提交数据的类型 分为POST和GET
cache: false,
dataType : "jsonp",
jsonp : "callback",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function(data) {
}
});
在jquery中,jsonp只能异步、get方式请求。
2、增加响应头
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
3、在springsecrity中允许跨域
@Configuration
@AutoConfigureBefore(SecurityConfig.class)
public class MyMvcConfigurer implements WebMvcConfigurer {
public void addCorsMappings(CorsRegistry registry){
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
配置中增加
.and()
.cors() //允许跨域
.and()
.csrf().disable(); //关闭跨域防护