预检请求的回应

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 服务器收到预检请求后,校验Origin、请求方法和头字段,若允许跨域,则返回包含Access-Control-Allow-Origin等CORS头的响应。该字段指定合法源,也可设为*表示允许任意源。同时通过Allow-Methods、Allow-Headers告知支持的方法和头字段,Max-Age指定预检缓存时长,避免重复请求。

服务器收到"预检"请求以后,检查了Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段以后,确认允许跨源请求,就可以做出回应。

HTTP/1.1 200 OK Date: Mon, 01 Dec 2008 01:15:39 GMT
Server: Apache/2.0.61 (Unix)
Access-Control-Allow-Origin: http://api.bob.com
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: X-Custom-Header Content-Type: text/html; charset=utf-8
Content-Encoding: gzip Content-Length: 0 Keep-Alive: timeout=2, max=100
Connection: Keep-Alive Content-Type: text/plain
上面的HTTP回应中,关键的是Access-Control-Allow-Origin字段,表示http://api.bob.com可以请求数据。该字段也可以设为星号,表示同意任意跨源请求。
Access-Control-Allow-Origin: *
如果服务器否定了"预检"请求,会返回一个正常的HTTP回应,但是没有任何CORS相关的头信息字段。这时,浏览器就会认定,服务器不同意预检请求,因此触发一个错误,被XMLHttpRequest对象的onerror回调函数捕获。控制台会打印出如下的报错信息。
XMLHttpRequest cannot load http://api.alice.com.
Origin http://api.bob.com is not allowed by Access-Control-Allow-Origin.
服务器回应的其他CORS相关字段如下。
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: X-Custom-Header
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 1728000
(1)Access-Control-Allow-Methods
该字段必需,它的值是逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法。注意,返回的是所有支持的方法,而不单是浏览器请求的那个方法。这是为了避免多次"预检"请求。
(2)Access-Control-Allow-Headers
如果浏览器请求包括Access-Control-Request-Headers字段,则Access-Control-Allow-Headers字段是必需的。它也是一个逗号分隔的字符串,表明服务器支持的所有头信息字段,不限于浏览器在"预检"中请求的字段。
(3)Access-Control-Allow-Credentials
该字段与简单请求时的含义相同。
(4)Access-Control-Max-Age
该字段可选,用来指定本次预检请求的有效期,单位为秒。上面结果中,有效期是20天(1728000秒),即允许缓存该条回应1728000秒(即20天),在此期间,不用发出另一条预检请求。

相关文章
|
2月前
|
存储 NoSQL 物联网
MongoDB应用场景
MongoDB适用于社交、游戏、物流、物联网及直播等场景,因其支持海量数据存储、高频读写操作。用户信息、动态、日志等低事务性、高并发数据可高效存取,尤其适合用嵌套结构与地理位置索引优化查询,是大规模非结构化数据存储的理想选择。(238字)
|
2月前
|
安全 小程序 JavaScript
OAuth2.0四种授权模式
OAuth2四种授权模式简介:授权码模式最安全,适用于第三方登录;简化模式无授权码,token直接返回,适合无后端场景;密码模式需用户共享账号信息,仅限高度信任服务;客户端模式为服务间调用,无需用户参与。
|
2月前
|
机器学习/深度学习 弹性计算 应用服务中间件
阿里云服务器租赁价格标准整理汇总:一年/按月/按小时报价明细出炉
最新的阿里云服务器价格多少钱1年?阿里云服务器产品包含 ECS 云服务器、轻量应用服务器和 GPU 服务器,涵盖多种实例规格与配置,满足不同使用需求。今天小编总结一篇关于最新的阿里云服务器租赁价格标准整理汇总:包含一年/按月/按小时报价明细。
|
9月前
|
运维 网络协议 数据可视化
流量实时分析软件的核心价值与实战指南
流量实时分析软件是网络运维与安全的必备工具,被誉为网络的“千里眼”。它通过捕获、解析并可视化网络流量数据,帮助管理员快速识别异常、排查问题,保障业务稳定运行。本文深入探讨其作用机制、核心功能(如流量捕获、协议解析、可视化告警等)、典型应用场景(故障定位、威胁检测、合规审计)及选型建议,强调其在现代IT系统中的重要价值。
流量实时分析软件的核心价值与实战指南
PreparedStatement 防止 SQL 注入原理
PreparedStatement 对象可以防止 SQL 注入,而 Statement 对象不能防止 SQL 注入,接下来使用一个案例剖析原理。
PreparedStatement 防止 SQL 注入原理
|
弹性计算 程序员 Linux
快速学会SVN的搭建和使用
Subversion(SVN) 是一个开源的版本控制系統,被广泛用于协同开发。本文教你怎样快速搭建和使用SVN版本控制系统,并进行代码的提交、修改和恢复版本。
14877 0
|
数据可视化 Java Android开发
JDAX-GUI 反编译工具下载使用以及相关技术介绍
反编译工具有很多种,我推荐JADX,后续有更好的反编译工具我会继续补充
1317 0
JDAX-GUI 反编译工具下载使用以及相关技术介绍
|
弹性计算 负载均衡 容灾
阿里云服务器地域和可用区选择及常见问题解答FAQ
阿里云服务器地域节点选择影响用户网络延迟和访问速度,阿里云服务器地域如何选择?云服务器可用区是什么?云服务器吧来详细说下阿里云服务器地域及可用区分布表、选择方法以及测试IP地址:
1428 0
阿里云服务器地域和可用区选择及常见问题解答FAQ
|
监控 NoSQL Java
阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
928 0
阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
|
SQL 分布式计算 算法
阿里云大数据ACP专业认证实验之06-MaxCompute内置函数(下)
阿里云大数据ACP专业认证实验之06-MaxCompute内置函数(下)
630 0
阿里云大数据ACP专业认证实验之06-MaxCompute内置函数(下)