当前位置: 首页 > news >正文

花木公司网站源码动漫制作技术专业常识

花木公司网站源码,动漫制作技术专业常识,北京市规划网站,网站目录做外链文章目录 什么是跨域解决方案CrossOrigin注解实现WebMvcConfigurer接口CorsFilter过滤器如何选择#xff1f; 前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。 Talk is cheap #xff0… 文章目录 什么是跨域解决方案CrossOrigin注解实现WebMvcConfigurer接口CorsFilter过滤器如何选择 前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。 Talk is cheap 先看代码。 在Springboot项目中新建一个测试接口端口号默认8080 RestController RequestMapping(test) public class TestController {GetMapping(1)public String test1(){System.out.println(1);return 111111111;} }再新建一个HTML页面在页面内访问上述接口 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlescript srchttps://cdn.bootcss.com/jquery/3.3.1/jquery.min.js/scriptscriptfunction cors() {$.get(http://localhost:9090/test/1, function(data) {alert(data)});}/script /head body button onclickcors()CORS/button /body /html从Idea中打开并在浏览器访问 点击CORS按钮你猜会发生什么 是的你猜对了浏览器控制台会出现如下提示就是告诉你跨域了。 cors.html:1 Access to XMLHttpRequest at http://localhost:9090/test/1 from origin http://localhost:63342 has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource.什么是跨域 介绍跨域之前要介绍一下同源策略什么是同源策略呢 同源策略是浏览器的一种安全策略用于限制一个网页文档或脚本如何与其他源的资源进行交互。同源策略的核心思想是网页文档或脚本只能与加载它们的同一个源下的资源进行交互而不能与不同源的资源直接进行数据交换。 同源策略有如下3点要求 协议相同两个页面的协议必须相同如都是 https。域名相同两个页面的域名包括子域名必须相同。端口相同如果指定了端口号两个页面的端口号必须相同。 举个例子 如果页面 A 加载自 https://www.example.com那么它只能与 https://www.example.com 下的资源进行交互比如可以通过 JavaScript 发送 AJAX 请求。页面 A 不能直接与 https://api.example.net 或 http://sub.example.com 这些不同源的资源进行交互因为它们的协议、域名或端口不同。 为什么要有同源策略 如果没有同源策略网站A就可以访问网站B的CookieCookie中可能会存在用户的token或者其他敏感信息通过这些敏感信息可能会发送一些伪请求到网站B从而窃取一些数据。这就相当于你们家什么安全措施都不做别人想进就进那可不丢家吗。 跨域或者叫跨域资源共享Cross-origin resource sharing, CORS 当浏览器访问不同源的网站时就会产生跨域问题。 为了让不同源之间的能够访问就要解决跨域问题。 解决方案 在Springboot中通常有3种方式 使用**CrossOrigin注解**实现WebMvcConfigurer接口使用CorsFilter过滤器 CrossOrigin注解 CrossOrigin注解可以作用于类或者方法级别当作用于类级别时表示该类中所有方法都可以实现跨域访问。当应用于方法级别时表示该方法可以实现跨域访问。 举个例子 RestController RequestMapping(test) public class TestController {CrossOrigin(origins http://localhost:63342) // 仅允许来自localhost:63342的请求跨域GetMapping(1)public String test1(){System.out.println(1);return 111111111;} }CrossOrigin注解有如下属性 origins允许访问的源列表。可以指定一个或多个 URL或者使用 * 来允许所有源。注意如果 allowCredentials 设置为 true则不能使用 *必须明确指定源。 methods允许的方法列表如 GET、POST、PUT 等。同样也可以使用 * 来允许所有方法。 allowedHeaders请求中允许的头列表。使用 * 可以允许所有头。 exposedHeaders响应中暴露给客户端的头列表。这些头会被添加到 Access-Control-Expose-Headers 响应头中。 allowCredentials是否允许发送 cookies。如果设置为 true浏览器将允许前端 JavaScript 访问响应中设置的 Cookies 和 HTTP 认证信息。这个选项和配置的域建立了很高的信任度不过呢也因为暴露了像 Cookies 和 CSRF 令牌这类敏感的用户特定信息增加了应用程序被攻击的可能性。 当 allowCredentials 为 true 时origins 不能设置为 *。 maxAge预检请求的结果可以被缓存多久以秒为单位。这可以减少不必要的预检请求提高性能。 originPatternsSpring 5.3 版本开始新增的属性。允许使用通配符模式来定义允许访问的域名。比如originPatterns{https://*.domain1.com}就是可以匹配以 domain1.com 结尾的网站。 allowPrivateNetworkSpring 5.3.32 版本开始新增的属性。是否允许来自私有网络地址的请求通过跨域请求。 实现WebMvcConfigurer接口 WebMvcConfigurer接口是Spring MVC的一个配置接口通过它可以自定义配置Spring MVC的行为包括但不限于视图解析器、静态资源处理、消息转换器、拦截器、跨域等。 只要实现WebMvcConfigurer接口重写addCorsMappings方法即可。 Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**) // 对所有路径生效.allowedOriginPatterns(*) // 允许源地址的通配符 // .allowedOrigins(http://localhost:63342) // 允许源地址http://localhost:63342.allowCredentials(true) // 是否允许发送Cookie.allowedMethods(GET, POST, DELETE, PUT) // 允许的请求方法.allowedHeaders(*); // 允许的请求头} }CorsRegistry 是一个用于配置跨域的工具类。 CorsRegistry 类中的属性和CrossOrigin注解中的跨域属性基本相同作用也是一样的这里不做过多介绍。 CorsFilter过滤器 CorsFilter 过滤器见名知意就是一个用于处理跨域请求的过滤器。具体用法如下 Configuration public class CorsFilterConfig {Beanpublic CorsFilter corsFilter() {CorsConfiguration config new CorsConfiguration();config.addAllowedOrigin(http://localhost:63342);config.setAllowCredentials(true);config.addAllowedMethod(*);config.addAllowedHeader(*); // config.addAllowedOriginPattern(*);UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource();// 匹配路径source.registerCorsConfiguration(/**, config);return new CorsFilter(source);} }看它的用法是不是特别熟悉是的没错它也和CrossOrigin注解中的跨域属性基本相同。 如何选择 既然CrossOrigin注解、WebMvcConfigurer配置类、CorsFilter过滤器都能解决跨域问题那使用哪个好呢 先来看一下它们之间的区别 WebMvcConfigurer用于全局配置CORS策略适合需要全局配置的场景。CorsFilter可以精细配置CORS策略并适用于对不同路径设置不同的CORS策略。CrossOrigin用于局部配置非常适合单个Controller或方法需要不同的CORS策略的情况。 在实际项目中可以根据需求选择合适的方式来解决跨域问题。如果项目中的跨域需求较为统一且希望有一个全局性的解决方案那么WebMvcConfigurer可能是一个不错的选择。如果需要对跨域请求进行更细粒度的控制或者项目中的跨域需求较为分散那么CorsFilter或CrossOrigin可能更适合。 所以没有好不好只有合不合适合适你的就是最好的。 以上在Springboot中解决跨域的三种方式其实都是对CorsConfiguration跨域配置类的封装感兴趣的可以看一看CorsConfiguration跨域配置类。
http://www.hkea.cn/news/14508339/

相关文章:

  • 泰州网站制作平台国外网站建设什么价格
  • 优质国外网站wordpress注册链接
  • 南宁制作网站公司php做的网站怎么调试
  • 青岛济南网站制作win7系统做asp网站
  • 网站联盟有哪些梦幻西游网页版最新版本
  • 做博客网站国家开发大学网站作业怎么做
  • 湖南3合1网站建设企业建网站的案例
  • 深圳网站程序开发大连网站制作师
  • 亚马逊网站网址是多少镜像网站能否做google排名
  • 做网站能不能放暴露图片工业和信息化部产业发展促进中心
  • 四川达州网站建设做预算的网站
  • 唐山网站公司建设网站企业网站建设的征求意见
  • 正规漫画网站开发流程网站自行备案
  • 北京住房和城乡建设部网站会员网站建设
  • 办网站租服务器安庆网页设计培训
  • 网站分类有哪几类公司介绍ppt内容
  • 大型电商网站建设百度seo关键词排名优化
  • 做网站需要网站负责人最新网页制作官网
  • 怎么样可以自己做网站ctoc的网站有哪些
  • wex5可以做网站吗网站首页导航怎么做二级导航
  • 网站特效漂亮的网站网站 建设 标准方案
  • 个人博客网站怎么做珠海做网站优化
  • 音乐网站系统源码网站怎么做移动图片
  • 大连网站排名优化价格网页设计入门基础教程
  • 网站建设一下需要多少费用广州制作网站
  • 银行虚拟网站制作小程序公司有必要做吗
  • 咕果网给企业做网站的建网站用营业执照吗
  • 单招网站开发基础知识wordpress教学模板
  • 用dw做网站的基本步骤毕节市交通建设集团网站
  • 四平建设局网站怎么在网站上投放广告