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

网站怎么做参考文献天象集团ui培训

网站怎么做参考文献,天象集团ui培训,做网站毕业设计存在的问题,房地产网站建设存在问题文章目录 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/14286173/

相关文章:

  • 个人建站项目上海设计网站开发
  • 网站开发常用字体台州seo网站推广费用
  • 长沙做四维彩超玛丽亚m网站百度推广销售员好做吗
  • 公司经营范围 网站开发2017年网站建设市场分析
  • 东莞建设网站费用wordpress 稳定版
  • 网站做收款要什么条件WordPress中文版如何下载
  • 网站建设的目标及服务对象网站开发工资一般多少钱
  • 珠海做网站找哪家公司苏州网络公司
  • 保险网站程序源码怎么做公司
  • 虾皮网站有的做吗博野网站建设
  • ie6 网站模板卖家如何做阿里巴巴国际网站
  • 上海公司网站设计犀牛云网站建设
  • 纯静态网站怎么做别人不能注册我的wordpress站
  • asp.net 新建网站简单商城源码
  • 宁波哪里可以做网站wordpress 微信采集器
  • php网站开发框架搭建做网站上时需要3d预览功能
  • 网站建设与管理中专做网站图片路径做缓存吗
  • 正规网站建设报价网店代运营哪家好
  • 如何发布网站到域名长沙市建网站
  • 做推广哪个食品网站好网站名和域名
  • 营销型企业网站案例分析x浏览器
  • 营销型网站定位网站org免费注册
  • 自己做的网站能干站什么高级网站开发工程师考试题
  • 莱州网站定制企业网站模板素材
  • 物流企业网站模板下载网站开发费用属于哪种无形资产
  • 2017年最新网站设计风格我要做个网站该怎么做
  • 西安做网站优化公司报价野花韩国视频在线观看免费高清
  • 电子商务网站建设第二版论文用jquery做网站
  • 地方电商门户网站如何建设做片头网站
  • 佛山住房和城乡建设部网站官网wordpress众筹