无需登录 数据私有 本地保存

CORS 预检请求测试器 - 发送 OPTIONS 分析响应

71
0
0
0
快速开始:测试API的CORS配置

第一步,打开CORS预检请求测试器页面。在页面顶部选择"自动测试"模式。第二步,填写目标URL,输入您要测试的API端点地址,例如"https://api.example.com/v1/users"。第三步,选择请求方法。如果您的前端代码使用POST方法调用该API,则在Access-Control-Request-Method下拉框中选择POST。第四步,添加自定义请求头。如果您的请求携带了Authorization或Content-Type等非简单头,点击"添加请求头"按钮,输入头部名称。例如添加"Authorization"和"Content-Type"。第五步,填写Origin。输入您的前端页面域名,例如"https://myapp.com"。第六步,点击"发送预检请求"按钮。工具会发送OPTIONS请求并显示结果。查看响应头表格中的CORS相关头部,以及下方的分析结果。如果分析结果显示全部通过,则说明服务器的CORS配置正确;如果有错误提示,根据提示修复服务器配置。

调试CORS错误

当浏览器控制台出现CORS错误时,按照以下步骤使用本工具调试。首先,复制浏览器控制台中显示的错误信息,通常会包含被阻止的头名称和Origin。然后,在本工具中配置相同的参数:目标URL填入被阻止的API地址、请求方法填入实际使用的方法、自定义请求头填入错误信息中提到的头名称、Origin填入当前页面的域名。发送预检请求后,查看分析结果。常见的CORS错误包括:Allow-Origin不匹配(服务器返回的Origin与页面Origin不同,修复方法是在服务器端动态判断Origin并返回匹配值);Allow-Methods缺少请求方法(服务器未在Allow-Methods中包含实际使用的HTTP方法,修复方法是在CORS配置中添加对应方法);Allow-Headers缺少自定义头(服务器未在Allow-Headers中声明前端使用的自定义头,修复方法是在CORS配置中添加对应头名称);Allow-Credentials与Allow-Origin冲突(Allow-Origin为*但Allow-Credentials为true,修复方法是将Allow-Origin设为具体值)。根据分析结果修复服务器配置后,重新发送预检请求验证修复是否生效。

使用cURL命令复现测试

当自动测试模式受限于浏览器CORS策略时,可以使用cURL命令在命令行中进行测试。在自动测试模式下配置好参数后,点击"复制cURL命令"按钮。然后打开终端(Windows为PowerShell或CMD,Mac/Linux为Terminal),粘贴命令并执行。cURL会显示完整的请求和响应信息,包括浏览器可能隐藏的响应头。在命令行输出中,关注以下信息:HTTP/1.1 204 No Content(成功的预检响应)、Access-Control-Allow-Origin头的值、Access-Control-Allow-Methods头的值、Access-Control-Allow-Headers头的值。如果服务器返回了非2xx状态码(如403或405),说明服务器未正确处理OPTIONS请求。如果响应中缺少CORS头,说明服务器未配置CORS。使用-v(verbose)参数可以看到更详细的请求和响应信息。

手动分析模式验证配置

手动分析模式适合在编写服务器CORS代码时进行预验证。切换到"手动分析"模式。在"请求参数"区域输入预期的请求信息:Origin填入前端页面域名、Method填入实际请求方法、Headers填入前端使用的所有自定义头。在"响应头"区域输入服务器代码中配置的CORS头。例如:Access-Control-Allow-Origin: https://myapp.com、Access-Control-Allow-Methods: GET, POST, PUT, DELETE、Access-Control-Allow-Headers: Content-Type, Authorization、Access-Control-Max-Age: 86400。点击"分析响应头"按钮。工具会逐项检查配置的正确性。如果Origin的值是通配符*但Allow-Credentials为true,工具会提示冲突。如果Methods中缺少DELETE但前端会使用DELETE方法,工具会提示方法不足。根据分析结果修改代码配置,然后重新验证,直到所有检查项都通过。

测试WebSocket预检请求

虽然WebSocket连接本身不受CORS限制,但某些框架在WebSocket握手前会发送预检请求(特别是在使用凭证的场景下)。要测试WebSocket相关的CORS配置,按照以下步骤操作。首先,在自动测试模式下将目标URL设置为WebSocket端点地址(如"wss://api.example.com/ws")。将请求方法设为GET(WebSocket握手使用GET方法)。将Origin设置为前端页面域名。添加自定义请求头"Upgrade: websocket"和"Connection: Upgrade"。发送预检请求后,检查服务器的CORS响应。注意:WebSocket的CORS检查主要在浏览器端进行,服务器的CORS配置会影响WebSocket握手的成功与否。如果预检请求失败,浏览器会阻止WebSocket连接的建立。确保服务器的CORS配置允许WebSocket握手所需的头和方法。

批量测试多个端点

当您需要测试多个API端点的CORS配置时,可以使用以下工作流。首先,确定所有需要测试的端点列表和各自的HTTP方法、自定义头。然后,逐个在工具中配置并发送预检请求。记录每个端点的分析结果。如果发现不一致的配置(如某些端点允许DELETE但其他端点不允许),可能说明后端的CORS配置分散在不同的路由处理器中,需要统一。使用cURL命令生成功能,为每个端点生成cURL命令并保存到脚本文件中。这样可以在CI/CD流程中自动化测试所有端点的CORS配置。分析结果可以导出为JSON格式,与团队成员共享或存档。建议在每次后端CORS配置变更后,重新运行批量测试以确保配置一致性。