预检请求

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 非简单CORS请求会先发送OPTIONS预检请求,检查服务器是否允许跨域。预检包含Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段,确认后才发送正式请求,否则报错。(238字)

4.1 预检请求
非简单请求是那种对服务器有特殊要求的请求,比如请求方法是PUT或DELETE,或者Content-Type字段的类型是application/json。
非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight)。
浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。
下面是一段浏览器的JavaScript脚本。
var url = 'http://api.alice.com/cors';
var xhr = new XMLHttpRequest();
xhr.open('PUT', url, true);
xhr.setRequestHeader('X-Custom-Header', 'value');
xhr.send();
上面代码中,HTTP请求的方法是PUT,并且发送一个自定义头信息X-Custom-Header。
浏览器发现,这是一个非简单请求,就自动发出一个"预检"请求,要求服务器确认可以这样请求。下面是这个"预检"请求的HTTP头信息。
OPTIONS /cors HTTP/1.1
Origin: http://api.bob.com Access-Control-Request-Method:
PUT Access-Control-Request-Headers: X-Custom-Header
Host: api.alice.com Accept-Language: en-US
Connection: keep-alive User-Agent: Mozilla/5.0...
"预检"请求用的请求方法是OPTIONS,表示这个请求是用来询问的。头信息里面,关键字段是Origin,表示请求来自哪个源。
除了Origin字段,"预检"请求的头信息包括两个特殊字段。
(1)Access-Control-Request-Method
该字段是必须的,用来列出浏览器的CORS请求会用到哪些HTTP方法,上例是PUT。
(2)Access-Control-Request-Headers
该字段是一个逗号分隔的字符串,指定浏览器CORS请求会额外发送的头信息字段,上例是X-Custom-Header。

相关文章
|
3月前
|
自然语言处理 数据挖掘 测试技术
Qwen3-VL-Embedding系列上新:探索统一多模态表征与排序
2025年6月,Qwen3-VL-Embedding与Qwen3-VL-Reranker开源,基于Qwen3-VL打造,支持文本、图像、视频等多模态检索与跨模态理解,具备统一表示学习、高精度重排序能力,广泛适用于全球化多语言场景,助力高效多模态信息检索。
1659 5
|
24天前
|
人工智能 机器人 Linux
OpenClaw 阿里云轻量+本地部署:企业微信集成、大模型千问/Coding Plan对接与常见问题解答
OpenClaw(原Clawdbot)作为本地优先、模块化的AI代理平台,2026年版本深度适配企业微信生态,可实现企业微信内自然语言交互、任务自动化、信息查询与办公协作全场景覆盖。本文提供2026年阿里云轻量服务器、本地MacOS/Linux/Windows11完整部署流程,详解企业微信接入(自建应用+机器人双模式)、阿里云千问大模型API与免费Coding Plan API配置方法,附可直接复制的代码命令与高频问题解决方案,零基础用户也能快速搭建稳定、安全、可协作的企业级AI助手系统。
290 5
|
1月前
|
SQL JSON 测试技术
从数据库到结构化用例:一套可落地的测试智能体架构
本文提出面向企业测试的三层智能体架构:SQL Agent精准读取数据库需求,Case Agent结构化生成用例,Validator强制校验输出。聚焦数据精确性、结果可控性与系统无缝集成,规避纯RAG不可持续问题,兼顾生产安全与工程落地。
|
9月前
|
敏捷开发 人工智能 Cloud Native
2025年强大的多视图项目管理工具推荐【实用+全面解析】
多视图项目管理工具是现代团队协作的重要利器,支持甘特图、看板、日历等多种视图模式,满足不同角色需求。此类工具显著提升团队灵活性、透明度和协作效率,尤其适合远程办公和跨部门协作场景。国内外主流工具包括板栗看板、飞书多维表、明道云等,各具特色。使用时需注意避免视图切换混乱,建议制定统一视图规范。未来这类工具将向智能推荐视图方向发展,成为团队提升效率的关键武器。
295 3
|
10月前
|
存储 分布式计算 安全
阿里云服务器ECS实例选型参考:场景适配、应用推荐
选择阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。对于很多新手用户来说,在初次购买阿里云服务器的时候,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,性能表现更是千差万别。因此,在购买阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。本文将通过一些常见的选型场景推荐,为大家详细介绍阿里云服务器实例选型的最佳实践,便于大家在选择云服务器实例规格时做个参考。
|
9月前
|
人工智能 JSON 前端开发
如何解决后端Agent和前端UI之间的交互问题?——解析AG-UI协议的神奇作用
三桥君指出AG-UI协议通过SSE技术实现智能体与前端UI的标准化交互,解决流式传输、实时进度显示、数据同步等开发痛点。其核心功能包括结构化事件流、多Agent任务交接和用户中断处理,具有"一次开发到处兼容"、"UI灵活可扩展"等优势。智能体专家三桥君认为协议将AI应用从聊天工具升级为实用软件,适用于代码生成、多步骤工作流等场景,显著提升开发效率和用户体验。
2254 0
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
541 69
|
前端开发 JavaScript 容器
在 vite+vue 中使用@originjs/vite-plugin-federation 模块联邦
【10月更文挑战第25天】模块联邦是一种强大的技术,它允许将不同的微前端模块组合在一起,形成一个统一的应用。在 vite+vue 项目中,使用@originjs/vite-plugin-federation 模块联邦可以实现高效的模块共享和组合。通过本文的介绍,相信你已经了解了如何在 vite+vue 项目中使用@originjs/vite-plugin-federation 模块联邦,包括安装、配置和使用等方面。在实际开发中,你可以根据自己的需求和项目的特点,灵活地使用模块联邦,提高项目的可维护性和扩展性。
|
存储 NoSQL MongoDB
MongoDB入门级别教程全(Windows版,保姆级教程)
一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
3503 5
MongoDB入门级别教程全(Windows版,保姆级教程)