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

相关推荐
全马必破三2 小时前
React虚拟Dom
前端·javascript·react.js
FAQEW2 小时前
若依微服务版(RuoYi-Cloud)本地启动全攻略
前端·后端·微服务·若依·二开
@菜菜_达2 小时前
前端防范 XSS(跨站脚本攻击)
前端·xss
Rysxt_2 小时前
Vue 3 项目核心:main.ts 文件的作用与配置详解
前端·javascript·vue.js
就叫飞六吧2 小时前
基于spring web实现简单分片上传demo
java·前端·spring
AAA阿giao3 小时前
拼乐高式开发:深入剖析 React 组件通信、弹窗设计与样式管理
开发语言·前端·javascript·react.js·前端框架·props·components
lvbinemail3 小时前
svn的web管理后台服务svnWebUI
运维·前端·svn·jar
Violet_YSWY3 小时前
Promise 讲解
前端
软件开发技术深度爱好者3 小时前
数学公式生成器HTML版
前端·html