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

深圳物流公司网站wordpress栏目加密

深圳物流公司网站,wordpress栏目加密,网站建设漠环熊掌号,软件开发工程师时薪先说明一个坑。在跨域的情况下,浏览器针对复杂请求,会发起预检OPTIONS请求。如果服务端对OPTIONS进行拦截,并返回非200的http状态码。浏览器一律提示为cors error。 一、了解跨域 1.1 同源策略 浏览器的同源策略(Same-Origin Po…

先说明一个坑。在跨域的情况下,浏览器针对复杂请求,会发起预检OPTIONS请求。如果服务端对OPTIONS进行拦截,并返回非200的http状态码。浏览器一律提示为cors error。

一、了解跨域

1.1 同源策略

浏览器的同源策略(Same-Origin Policy),用于限制网页中的JavaScript代码与来自不同源的资源进行交互。

同源策略的规则包括

  1. 协议相同
  2. 域名或主机地址相同
  3. 端口相同

下图为是否同源的示例

1.2 跨域资源共享

1.2.1 概念

跨域资源共享(Cross-Origin Resource Sharing,CORS)是一种机制,为了绕过浏览器的同源策略(Same-Origin Policy)而设计的,它允许网页从不同源(域名、协议、端口)获取或发送HTTP请求,以实现跨域数据交换。

CORS将HTTP请求分为两类,如果详细了解,请查阅跨域资源共享-W3C

  1. 简单请求
    • 请求方式
      • GET
      • POST
      • HEAD
    • 特定的Content-Type值
      • text/plain
      • multipart/form-data
      • application/x-www-form-urlencoded
    • 请求头Accept, Accept-Language, Content-Language
  2. 预检请求
    • 当浏览器检测到一个跨域请求不符合"简单请求"的条件时,它会自动发送一个预检请求以获得服务器的授权。
    • 非简单请求的请求方式
    • 非简单请求的Content-Type值
    • 非简单请求的请求头

1.2.2 服务器

服务器通过在响应中包含相应的CORS头部来授权或拒绝请求。常见的CORS头部包括:

  • Access-Control-Allow-Origin:指定哪些源可以访问资源。
  • Access-Control-Allow-Methods:指定允许的HTTP方法。
  • Access-Control-Allow-Headers:指定允许的自定义HTTP头部。
  • Access-Control-Allow-Credentials:指定是否允许发送凭据,如Cookie。
  • Access-Control-Max-Age:时间单位为秒。指定预检请求的缓存时间,减少后续请求的预检请求次数。

二、SpringBoot示例配置

SpringBoot配置跨域三种方式,启动项目进行测试。访问http://127.0.0.1:4321/

源码地址

2.1 局部注解

@PostMapping("/annotation")
@CrossOrigin
public String annotation() {return "注解实现跨域";
}

2.2 第一种全局

/*** 方式一** @see <a href="https://blog.csdn.net/qq_37651252/article/details/106630443">跨域配置方式一</a>*/
@Bean
public CorsFilter first() {CorsConfiguration config = new CorsConfiguration();//允许所有域名进行跨域调用//config.addAllowedOrigin("*");//springboot2+不适用该方法config.addAllowedOriginPattern("*");//允许跨越发送cookieconfig.setAllowCredentials(true);//放行全部原始头信息config.addAllowedHeader("*");//允许所有请求方法跨域调用,使用大写的方可config.addAllowedMethod("GET");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsFilter(source);
}

2.3 第二种全局

/*** 方法二*/
@Bean
public FilterRegistrationBean second() {FilterRegistrationBean registrationBean = new FilterRegistrationBean();//注入过滤器registrationBean.setFilter((servletRequest, servletResponse, filterChain) -> {HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");//响应头设置httpServletResponse.setHeader("Access-Control-Allow-Headers", "*");//响应类型httpServletResponse.setHeader("Access-Control-Allow-Methods", "*");//允许跨越发送cookiehttpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");filterChain.doFilter(servletRequest, servletResponse);});//过滤器名称registrationBean.setName("CrossOrigin");//拦截规则registrationBean.addUrlPatterns("/*");//过滤器顺序registrationBean.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);return registrationBean;
}

2.4 第三种全局

@Component
public class SystemWebMvcConfigurer extends WebMvcConfigurationSupport {/*** 跨域配置*/@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowCredentials(true).allowedOriginPatterns("*").allowedHeaders("*").allowedMethods("*");}
}

ials(true)
.allowedOriginPatterns(““)
.allowedHeaders(”
”)
.allowedMethods(“*”);
}
}

http://www.yayakq.cn/news/179507/

相关文章:

  • 外汇平台网站建设婚车租赁
  • 推广网站建设产品介绍定制头像软件
  • 网站大连江苏盐城网络科技有限公司
  • 做公众号微网站大丰seo排名
  • 用别人的公司名字做网站无需登录免费观看的直播
  • 建广告网站需要多少钱wordpress用户关系
  • 数据库检索网站建设淘宝seo什么意思
  • 正规的网站建设工作室ui培训心得
  • 微信公众号直接链接网站怎么做网站修改title
  • ico项目网站建设华为用了哪些网络营销方式
  • 长沙网站制作公司在哪里单页面视频网站
  • 济南定机票网站建设上海建设工程造价信息平台
  • 江干网站建设wordpress主题添加双备案号
  • 西安网站搭建提供网站建设出售
  • 随州网站设计开发方案新闻发布会发言稿
  • 免费建站平台排名dw网页制作怎么设置背景颜色
  • 北京建设教育网站广州办营业执照
  • 对网站开发实训的建议资海网络一年做多少网站
  • 免费网站加速软件北京网站改版有哪些好处
  • 门户网站需要多大的服务器wordpress删除未分类
  • 大兴网站开发网站建设咨询南通网站上百度首页
  • 网站建设百度云深圳市住房和建设局官网站
  • 做下载网站赚钱吗建设网站的多少钱
  • 廊坊建设企业网站网站备案管谁要幕布
  • 响应式网站布局常德天恒建设网站
  • 测速网站怎么做网页设计实训报告总结1000字
  • 百拓公司做网站怎么样网络培训挂机软件
  • 记事本里做网站 怎么把字体经营网站如何挣钱
  • 网站建设学什么语音建设工程网站168
  • 网站建设品牌衣服定制的app有哪些