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

网站怎么做参考文献西安做网站优化的公司

网站怎么做参考文献,西安做网站优化的公司,垂直门户网站的盈利模式探讨,网页设计基础读书笔记文章目录 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.hkea.cn/news/14580047/

相关文章:

  • w3c验证网站用vs2010做的网站的源码
  • 怎么做兼职网站做一个公司网站一般多少钱
  • 局网站建设情况汇报营销型网站的现状
  • 用html做网站顺序网站白名单 是什么
  • 建站官网模板比较好的网站开发教学网站
  • 网站建设行业动态淘宝运营视频教程全集
  • 成都微信网站建设推石家庄住房和城乡建设局官网
  • 网站制作模板北京代做毕业设计网站 道路桥梁
  • 网站建设的三网合一如何做公司企业网站
  • 保险网站程序源码国外被动收入网站做的好的
  • 怎么描述网站主页做的好阿里建站模板
  • 网站服务器容器网站设计服务要不要交文化事业建设费
  • 网站建设需求分析调研表网站制作书生
  • 西安专业做网站的公司哪家好电脑哪里做模板下载网站
  • 网站制作方案策划简历网站建设英文如何表达
  • 邳州做网站的公司安徽省住房城乡建设部网站
  • 做网站和推广需要多少钱以数字域名为网址的网站
  • 广州网站建设专业乐云seo南京网络营销服务
  • 怎么找到网站后台做健身推广网站
  • 网站设计需求说明书做变性手术视频网站
  • 学校网站建设说明绍兴网站建设公司
  • 怎么制作app网站网站建设方案书 个人备案
  • 清河做网站哪家便宜药品网站前置审批
  • 如何免费搭建网站数据分析师需要考哪些证书
  • 怎样免费建微网站html网页制作下载
  • 做网站哪个便宜深圳市浩天建设网站
  • 网站水印怎么做的wordpress产品内页怎么排
  • 建设银行网站百度一下中国城市建设网站
  • 做淘宝网站多少钱浙江省城乡住房建设厅网站
  • 长沙专业网站建设品牌wordpress喜欢