预检请求的回应

简介: 服务器收到预检请求后,校验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月前
|
人工智能 安全 Java
AI 编程时代的质量底座:SDD 规范驱动与 TDD 测试驱动深度实战
本文提出AI编程时代高效开发新范式:SDD(规范驱动开发)+TDD(测试驱动开发)组合。SDD定义清晰、结构化的行为契约,TDD通过测试固化契约并验证实现;AI专注中间代码生成,人聚焦需求理解与质量把控。实践表明,该方法可使线上bug率降72%、迭代速度提40%,真正兼顾效率与质量。
608 1
|
2月前
|
人工智能 前端开发 Shell
loop 最佳实践:从 /goal 到 /loop,让 Agent 工作流循环起来
本文详解Coding Agent的四种核心循环模式:基于轮次(人工驱动)、目标导向(/goal)、时间触发(/loop与/schedule)及主动循环,强调Agent工程的关键在于明确“谁触发、何时停、如何验”,而非仅优化Prompt。
436 0
loop 最佳实践:从 /goal 到 /loop,让 Agent 工作流循环起来
|
4月前
|
人工智能 安全 测试技术
阿里云JVS Claw是什么?JVS Claw能力、部署方式与部署流程参考
阿里云推出的AI智能体平台JVS Claw,基于OpenClaw框架打造,定位为"执行型智能体",解决了传统AI助手"只会说不会做"的痛点。JVS Claw支持云端与本地双部署模式,云端环境安全隔离、7×24小时在线,本地模式数据可控。产品提供体验版(7天免费)、匠心版(39元/月起)、大师版三档方案,适用于办公提效、代码开发、团队协作等场景。用户可通过自然语言指令驱动Clawbot执行邮件处理、代码生成、自动化测试等复杂任务,并支持自定义Skill扩展能力。39元/月起的定价大幅降低了AI Agent的使用门槛。
|
10月前
|
存储 人工智能 自然语言处理
游戏云,市场份额第一
国际数据公司(IDC)发布最新《中国游戏云市场跟踪》报告,阿里云稳居中国游戏云整体市场份额第一。其中,阿里云在中国游戏云基础设施(IaaS)+云解决方案(Cloud Solution)的份额已提升至41%。同时,阿里云游戏云基础设施(IaaS)收入同比增长15.3%。自2021年以来,阿里云持续稳居中国游戏云整体市场份额第一。
|
9月前
|
存储 NoSQL 物联网
MongoDB应用场景
MongoDB适用于社交、游戏、物流、物联网及直播等场景,因其支持海量数据存储、高频读写操作。用户信息、动态、日志等低事务性、高并发数据可高效存取,尤其适合用嵌套结构与地理位置索引优化查询,是大规模非结构化数据存储的理想选择。(238字)
|
9月前
|
安全 小程序 JavaScript
OAuth2.0四种授权模式
OAuth2四种授权模式简介:授权码模式最安全,适用于第三方登录;简化模式无授权码,token直接返回,适合无后端场景;密码模式需用户共享账号信息,仅限高度信任服务;客户端模式为服务间调用,无需用户参与。
|
运维 监控 DataWorks
DataWorks 稳定性保障全解析:深入监控与资源调配
DataWorks 的稳定性保障体系涵盖精细监控与资源调配,确保企业数据业务高效、稳定运行。监控模块包括资源、任务和质量监控,及时预警并处理异常;资源调配策略则针对集成、调度、数据服务及计算资源进行科学配置,保障数据同步、任务优先级和高并发需求。通过全方位的监控和合理的资源配置,DataWorks 为企业筑牢数据根基,助力数字化转型。
883 10
|
分布式计算 监控 NoSQL
图数据库 Nebula Graph 是什么
图数据库 Nebula Graph 是什么?本文将带你了解它的特性和功能,并提前揭秘部分 Nebula Graph 1.0 功能
4242 0
|
关系型数据库 MySQL 应用服务中间件
Lsky Pro兰空图床搭建教程
现在好多人都会使用图床托管自己的图片,使用免费的CDN加速和空间,但是图片失效的问题令人烦恼,免费的图床说不定哪一天就会失效,所以搭建自己的图床是优先的选择,本篇文章教大家如何搭建Lsky Pro兰空图床
1786 0
Lsky Pro兰空图床搭建教程