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

网站怎么做参考文献做电影网站详细教程

网站怎么做参考文献,做电影网站详细教程,照片视频制作小程序,免费表格制作app文章目录 SpringBoot 项目中后端实现跨域的5种方式#xff01;#xff01;#xff01;一、为什么会出现跨域问题二、什么是跨域三、非同源限制四、Java后端 实现 CORS 跨域请求的方式1、返回新的 CorsFilter(全局跨域)2、重写 WebMvcConfigurer(全局跨域)3、使用注解 (局部跨… 文章目录 SpringBoot 项目中后端实现跨域的5种方式一、为什么会出现跨域问题二、什么是跨域三、非同源限制四、Java后端 实现 CORS 跨域请求的方式1、返回新的 CorsFilter(全局跨域)2、重写 WebMvcConfigurer(全局跨域)3、使用注解 (局部跨域)4、手动设置响应头(局部跨域)5、使用自定义filter实现跨域 SpringBoot 项目中后端实现跨域的5种方式 一、为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略Sameoriginpolicy是一种约定它是浏览器最核心也最基本的安全功能如果缺少了同源策略则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的浏览器只是针对同源策略的一种实现。 同源策略 同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源即指在同一个域就是两个页面具有相同的协议protocol主机host和端口号port 二、什么是跨域 举例说明: 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 三、非同源限制 【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB 【2】无法接触非同源网页的 DOM 【3】无法向非同源地址发送 AJAX 请求 四、Java后端 实现 CORS 跨域请求的方式 对于 CORS的跨域请求主要有以下几种方式可供选择 1、返回新的CorsFilter 2、重写 WebMvcConfigurer 3、使用注解 CrossOrigin 4、手动设置响应头 (HttpServletResponse) 5、自定web filter 实现跨域 注意 CorFilter / WebMvConfigurer / CrossOrigin 需要 SpringMVC 4.2以上版本才支持对应springBoot 1.3版本以上上面前两种方式属于全局 CORS 配置后两种属于局部 CORS配置。如果使用了局部跨域是会覆盖全局跨域的规则所以可以通过 CrossOrigin 注解来进行细粒度更高的跨域资源控制。其实无论哪种方案最终目的都是修改响应头向响应头中添加浏览器所要求的数据进而实现跨域 1、返回新的 CorsFilter(全局跨域) 在任意配置类返回一个 新的 CorsFIlter Bean 并添加映射路径和具体的CORS配置路径。 Configuration public class GlobalCorsConfig {Beanpublic CorsFilter corsFilter() {//1. 添加 CORS配置信息CorsConfiguration config new CorsConfiguration();//放行哪些原始域config.addAllowedOrigin(*);//是否发送 Cookieconfig.setAllowCredentials(true);//放行哪些请求方式config.addAllowedMethod(*);//放行哪些原始请求头部信息config.addAllowedHeader(*);//暴露哪些头部信息config.addExposedHeader(*);//2. 添加映射路径UrlBasedCorsConfigurationSource corsConfigurationSource new UrlBasedCorsConfigurationSource();corsConfigurationSource.registerCorsConfiguration(/**,config);//3. 返回新的CorsFilterreturn new CorsFilter(corsConfigurationSource);} } 2、重写 WebMvcConfigurer(全局跨域) Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**)//是否发送Cookie.allowCredentials(true)//放行哪些原始域.allowedOrigins(*).allowedMethods(new String[]{GET, POST, PUT, DELETE}).allowedHeaders(*).exposedHeaders(*);} } 3、使用注解 (局部跨域) 在控制器(类上)上使用注解 CrossOrigin:表示该类的所有方法允许跨域。 RestController CrossOrigin(origins *) public class HelloController {RequestMapping(/hello)public String hello() {return hello world;} } 在方法上使用注解 CrossOrigin: RequestMapping(/hello)CrossOrigin(origins *)//CrossOrigin(value http://localhost:8081) //指定具体ip允许跨域public String hello() {return hello world;} 4、手动设置响应头(局部跨域) 使用 HttpServletResponse 对象添加响应头(Access-Control-Allow-Origin)来授权原始域这里 Origin的值也可以设置为 “*”,表示全部放行。 RequestMapping(/index) public String index(HttpServletResponse response) {response.addHeader(Access-Allow-Control-Origin,*);return index; } 5、使用自定义filter实现跨域 ssm的写法 首先编写一个过滤器可以起名字为MyCorsFilter.java package cn.fpl.aop;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; Component public class MyCorsFilter implements Filter {public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletResponse response (HttpServletResponse) res;response.setHeader(Access-Control-Allow-Origin, *);response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Headers, x-requested-with,content-type);chain.doFilter(req, res);}public void init(FilterConfig filterConfig) {}public void destroy() {} } 在web.xml中配置这个过滤器使其生效 !-- 跨域访问 START-- filterfilter-nameCorsFilter/filter-namefilter-classcn.fpl.aop.MyCorsFilter/filter-class /filter filter-mappingfilter-nameCorsFilter/filter-nameurl-pattern/*/url-pattern /filter-mapping !-- 跨域访问 END -- springboot可以简化 import org.springframework.context.annotation.Configuration; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletResponse; import java.io.IOException; WebFilter(filterName CorsFilter ) Configuration public class CorsFilter implements Filter {Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletResponse response (HttpServletResponse) res;response.setHeader(Access-Control-Allow-Origin,*);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Allow-Methods, POST, GET, PATCH, DELETE, PUT);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Headers, Origin, X-Requested-With, Content-Type, Accept);chain.doFilter(req, res);} }
http://www.dnsts.com.cn/news/149372.html

相关文章:

  • 百度联盟怎么做自己的网站wordpress网站统计
  • 网络营销就是网站营销在线代理访问
  • 做网站题材nodejs网站毕设代做
  • 什么平台做网站wordpress无法找到页面
  • 手机能访问电脑上自己做的网站吗免费网站大全下载
  • 微网站建设哪家好域名转接的流程
  • 盘州电子商务网站建设搜索引擎查询
  • 可做笔记的阅读网站软件开发培训机构排名
  • phpmysql网站开发全程实例 pdf莱芜app下载
  • 网站广告投放价格表wordpress文库管理
  • 怎样创建网站dw宁波网站制作流程
  • 上海太江建设网站wordpress课程表单
  • 临海门户网站住房和城乡建设规划局湖州企业网站制作
  • 温州专业手机网站制作哪家好专业建站制作
  • 建设施工合同备案在哪个网站数字济南建设
  • 公司网站开发 中山报告编号怎么获取
  • 教育培训机构招生网站建设大庆网站设计
  • 东凤网站微信小程序开发快速入门
  • 哈尔滨网站建设网络公司中铁建设团门户网登录入口
  • 福州网站关键排名动漫设计是干什么的
  • 网站开发公众号开发网站排名怎么做 知乎
  • 广州网站制作十年乐云seo西安杰商网络网站建设
  • 做链家房产的网站怎么做的快速网站
  • 莘县做网站上海的建设项目招投标在哪个网站
  • 如何做明星的个人网站wordpress 幻灯片加数字
  • 南昌网站建设过程网站开发人员上级主管
  • 网站怎么做留言提交功能福田网站建设公司
  • 重庆市工程建设信息网新网站深圳社保网上服务平台
  • 安徽全过程网站搭建案例网站域名好了下一步
  • 网站开发涉及内容免费不收费用网站