前端基础知识之CORS

简介: 前后端分离后,前端打开控制台一看,怎么有时请求一个后端接口发了两次请求?那个options是啥?很有可能是因为你发送的是CORS请求(CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)),且是非简单请求。浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。

3.jpg

前后端分离后,前端打开控制台一看,怎么有时请求一个后端接口发了两次请求?

那个options是啥?


很有可能是因为你发送的是CORS请求(CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)),且是非简单请求。


浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。


只要同时满足以下两大条件,就属于简单请求


1 请求方法是以下三种方法之一:


  • HEAD


  • GET


  • POST


2 HTTP的头信息不超出以下几种字段:


  • Accept


  • Accept-Language


  • Content-Language


  • Last-Event-ID


Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain


凡是不同时满足上面两个条件,就属于非简单请求。非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求。"预检"请求用的请求方法是OPTIONS,表示这个请求是用来询问的。



相关文章
|
8月前
|
前端开发 API 数据安全/隐私保护
Web前端开发中的跨域资源共享(CORS)解决方案
【2月更文挑战第5天】在Web前端开发中,跨域资源共享(CORS)是一个常见的挑战。本文将探讨CORS的概念和原理,并介绍一些常用的解决方案,包括服务器端配置和前端处理方法,帮助开发者更好地应对跨域请求问题。
301 4
|
8月前
|
前端开发 开发者
前端开发中的跨域资源共享(CORS)解决方案探讨
【2月更文挑战第2天】跨域资源共享(CORS)是前端开发中常见的问题,本文将深入探讨CORS的原理及解决方案,包括简单请求、预检请求以及常用的CORS解决方案,为前端开发者提供深入的理解和应对CORS问题的有效方法。
116 1
|
8月前
|
前端开发 JavaScript API
探索前端开发中的跨域资源共享(CORS)
【2月更文挑战第3天】在前端开发中,跨域资源共享(CORS)是一个至关重要的话题。本文将深入探讨CORS的概念、工作原理以及如何在前端项目中正确配置和处理跨域请求,帮助开发者更好地理解和应用CORS技术。
81 7
|
8月前
|
前端开发 安全 JavaScript
前端开发中的跨域资源共享(CORS)机制
【2月更文挑战第3天】 在前端开发中,跨域资源共享(CORS)机制是一个重要的安全性问题。本文将介绍CORS的概念、原理和实现方式,并探讨在前端开发中如何处理跨域资源请求,以及如何提高网站的安全性。
|
5月前
|
前端开发 JavaScript
【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
|
5月前
|
前端开发 应用服务中间件 API
"揭秘!面试官必问:你是如何巧妙绕过跨域难题的?前端代理VS服务器端CORS,哪个才是你的秘密武器?"
【8月更文挑战第21天】在软件开发中,尤其前后端分离架构下,跨域资源共享(CORS)是常见的挑战。主要解决方案有两种:一是服务器端配置CORS策略,通过设置响应头控制跨域访问权限,无需改动前端代码,增强安全性;二是前端代理转发,如使用Nginx或Webpack DevServer在开发环境中转发请求绕过同源策略,简化开发流程但不适用于生产环境。生产环境下应采用服务器端CORS策略以确保安全稳定。
69 0
|
7月前
|
前端开发 对象存储 数据安全/隐私保护
阿里云前端直传has been blocked by CORS policy: Response to preflight request doesn‘t pass access control
阿里云前端直传has been blocked by CORS policy: Response to preflight request doesn‘t pass access control
722 2
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
601 1
|
8月前
|
缓存 前端开发 JavaScript
前端基础知识
【5月更文挑战第8天】前端基础知识
68 5
|
8月前
|
前端开发 JavaScript
前端基础知识(一){HTML.CSS.JavaScript}
前端基础知识(一){HTML.CSS.JavaScript}