接口请求了两次,一次报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再交给后端路由处理。

相关推荐
亿元程序员20 小时前
十年游戏程序员开箱实测:这台显示器,彻底改写了我的游戏开发日常
前端
凉城a20 小时前
前端性能优化解决方案
前端·性能优化
慧一居士20 小时前
Zod 功能、使用场景介绍以及对应场景使用示例
前端·vue.js
我命由我1234520 小时前
React - React 配置代理、搜索案例(Fetch + PubSub)、React 路由基本使用、NavLink
开发语言·前端·javascript·react.js·前端框架·html·ecmascript
The Sheep 202320 小时前
C# 操作XML
xml·前端·c#
存在的五月雨21 小时前
Nodejs的一些
前端
l143723326721 小时前
短剧出海翻译工具测评:同一段素材实测对比
大数据·前端·人工智能
小马_xiaoen21 小时前
Vue 3 + TS 实战:手写 v-no-emoji 自定义指令,彻底禁止输入框表情符号!
前端·javascript·vue.js
文心快码BaiduComate21 小时前
有奖征集|解锁Comate超能力:一文玩转Comate Skills
前端·后端
小码哥_常21 小时前
Android 集合探秘:ArrayMap 与 SparseArray 的奇妙之旅
前端