后端解决请求跨域
前言:最近开发一个springboot项目,因为涉及到前端需要去调用另外一个服务器的接口,所以就涉及到了跨域问题。其实在这之前一直不知道跨域是什么,只是听说过,没有遇到过,就没花时间去了解。现在自己的项目也要解决这个问题,索性就在网上看了看,记录一下自己所学。
什么是跨域?
首先我们先说一下什么是同域:就是两个页面具有相同的协议,IP和端口号;
那么跨域就是当一个url请求,它的协议,IP,端口中任意一个与当前请求的页面不同即为跨域;
就比如说我们一个系统所在服务器,因为一些业务需要,要去调用另外一个服务器的系统的接口,那么它们的IP地址肯定就是不同的,这就算是跨域了;
为什么会有跨域问题?
因为我们的浏览器是有一个同源策略的规定的,它是浏览器最基本的安全功能,可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略就会阻止一个域和另外一个域进行交互;
java解决跨域
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
/*是否允许请求带有验证信息*/
corsConfiguration.setAllowCredentials(true);
/*允许访问的客户端域名*/
corsConfiguration.addAllowedOrigin("*");
/*允许服务端访问的客户端请求头*/
corsConfiguration.addAllowedHeader("*");
/*允许访问的方法名,GET POST等*/
corsConfiguration.addAllowedMethod("*");
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
这里就只写根据我自己遇到的问题而解决跨域的方法了哈,其实解决跨域的方法很多很多,大家可以自己搜一下。因为我的项目是springboot项目,所以只需要将定义好的跨域类,作为配置类生效,将组件添加到容器中即可;
明天到公司给大家截图看一下请求跨域的样子,其实就是前端请求直接爆红,后端没有任何的响应;
前端出现带有这个 Access-Control-Allow-Origin
报错,大概就是涉及到跨域问题了吧。
大家想了解更多的解决跨域的方法推荐文章:
https://blog.csdn.net/qq_38128179/article/details/84956552
https://blog.csdn.net/qq_37651267/article/details/93367870
总结:
不知不觉又1点了,好久没写文章记录知识了。因为最近赶项目真的太累了,每天回来就只想躺床上看看手机就睡了。今天项目算是基本上线,虽然还存在很多问题,至少心里没那么慌了。唉,慢慢来,把前两周没写的文章抽时间补上。加油!!!
下一篇:java加解密的使用