问题描述:给官网加一个新闻资讯,官网和后台的服务器不在一起,官网请求后台使用ajax 方式请求,提示跨域无法请求;
问题情况:
后台使用 Spring Boot 拦截器 来拦截处理http的请求(框架使用pearadmin[Pear Admin 官网])
后台访问地址: http://127.0.0.1:8080/
官网访问地址 :http://127.0.0.1/
官网前端:html jquery,使用ajax请求 get 和post 方式都可以
$.ajax({ type: "GET", url: 'http://127.0.0.1:8080/api/news/getNewslist',//getNewslist, data: {}, success: function (data) {} });
浏览器报错信息:Access to XMLHttpRequest at 'http://127.0.0.1:8080/api/news/getNewslist' from origin 'http://127.0.0.1' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
注解:http://127.0.0.1:8080/api/news/getNewslist和htttp://127.0.0.1 跨域无法实现
解决办法
重写拦截器 addCorsMappings 方法@Configuration public class WxloginConfig implements WebMvcConfigurer { //其他配置 /** * 跨域请求配置 * @param registry 跨域请求 * 参考来源:码农网 * 参考链接:https://www.codercto.com/a/57818.html */ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS") .allowCredentials(false).maxAge(3600); } }
响应结果:对比上图