接口请求了两次,一次报200,一次报404

实际上,预检(OPTIONS) 200 并不代表接口存在,POST 404表示后端没有这个路径,或者说路径不在这个server上。也就是说,跨域是通的,但接口地址是错的/不存在。

现在的网络面板

分别解释各自的意思:

1、OPTIONS是什么

浏览器在发POST + FormData之前,会先问一句:"我能不能向你这个地址,用POST,带文件,带headers发请求"

这就是CORS预检请求------preflight。

OPTIONS 200说明有一个服务器在这个地址上响应了,并且返回了类似:

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: POST

2、POST 404

表示服务器明确告诉"这里没有 /api ",也就是说接口路径不对。

3、为什么会出现[OPTIONS有,POST没有]?

这是因为很多后端/网关/Nginx会这样配置:

location /api/ {

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

if ($request_method = OPTIONS) {

return 200;

}

}

OPTIONS被统一放行,POST再交给后端路由处理。

相关推荐
阿星做前端8 小时前
不想再给ai回复下一步了,于是我给agent装上了一个自动挡
前端·后端·程序员
毛骗导演8 小时前
Skill 还是 Tool?——从 OpenClaw 源码看 Agent 能力扩展的两种范式
前端·架构
周杰伦fans8 小时前
禁止edge浏览器更新
前端·edge
user297525876128 小时前
使用SSE实现流式渲染实践
前端·javascript
LPieces8 小时前
【LPieces-UI】02-Icon组件的设计与实现
前端·vue.js
我本地是好的8 小时前
解决高德地图无外网访问难题:Vue项目代理转发全攻略
前端
wand codemonkey8 小时前
Maven Web 项目 + Tomcat 从零排错全流程(零遗漏版)
前端·tomcat·maven
豆苗学前端8 小时前
【前端内功】同为数据驱动,为什么只有 React 的"心智负担"这么重?(附实战优化指南)
前端·vue.js·面试
铁皮饭盒8 小时前
震惊, Bun突发新版, 重写核心, 换掉了底层Zig
前端·javascript·后端
IT_陈寒9 小时前
深入理解Java:核心原理与最佳实践
前端·人工智能·后端