介绍
这篇文章给大家分享的是有关弹簧引导设置支持跨域请求的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
现代浏览器出于安全的考虑,HTTP请求时必须遵守同源策略,否则就是跨域的HTTP请求,默认情况下是被禁止的,IP(域名)不同,或者端口不同,协议不同(比如HTTP、HTTPS)都会造成跨域问题。
一般前端的解决方案有:
- <李>①使用JSONP来支持跨域的请求,JSONP实现跨域请求的原理简单的说,就是动态创建& lt; script>标签,然后利用& lt; script>的SRC不受同源策略约束来跨域获取数据。缺点是需要后端配合输出特定的返回信息。李> <李>②利用反应代理的机制来解决跨域的问题,前端请求的时候先将请求发送到同源地址的后端,通过后端请求转发来避免跨域的访问。李>
后来HTML5支持了歌珥协议.CORS是一个W3C标准,全称是“跨域资源共享”(跨源资源共享),允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。它通过服务器增加一个特殊的头(Access-Control-Allow-Origin)来告诉客户端跨域的限制,如果浏览器支持歌珥,并且判断源通过的话,就会允许XMLHttpRequest发起跨域请求。
前端使用了歌珥协议,就需要后端设置支持非同源的请求,弹簧引导设置支持非同源的请求有两种方式。
第一,配置CorsFilter。
@ configuration 公开课GlobalCorsConfig { @ bean 公共CorsFilter CorsFilter () { CorsConfiguration配置=new CorsConfiguration (); config.addAllowedOrigin (“*”); config.setAllowCredentials(真正的); config.addAllowedMethod (“*”); config.addAllowedHeader (“*”); config.addExposedHeader (“*”); UrlBasedCorsConfigurationSource configSource=new UrlBasedCorsConfigurationSource (); configSource.registerCorsConfiguration(“/* *”,配置); 返回新CorsFilter (configSource); } }
需要配置上述的一段代码。第二种方式稍微简单一些。
第二,在启动类上添加:
公共类应用程序扩展WebMvcConfigurerAdapter { @Override 公共空间addCorsMappings (CorsRegistry注册表){ registry.addMapping (“/* *”) .allowCredentials(真正的) .allowedHeaders (“*”) .allowedOrigins (“*”) .allowedMethods (“*”); } }
感谢各位的阅读!关于弹簧引导设置支持跨域请求的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!