为啥浏览器对 OPTION 请求得到 200 响应和 503 响应?

Posted

技术标签:

【中文标题】为啥浏览器对 OPTION 请求得到 200 响应和 503 响应?【英文标题】:Why does the browser get a 200 response to an OPTION request and a 503 response?为什么浏览器对 OPTION 请求得到 200 响应和 503 响应? 【发布时间】:2020-02-24 04:21:24 【问题描述】:

现在我阻止了这个问题 1 周。我已经尝试寻找类似的案例,但他们没有回答我的问题。

问题是:我在 Heroku 上有一个用 Express js 开发的 API,在另一台服务器上有一个角度接口。 例如,要添加一篇文章,API 运行良好,并通过 CORS 响应返回答案。 更新时出现问题。每当我发出 PUT 请求时,如果我有权执行此操作,浏览器就会检查我的 API(选项)的答案,实际上我得到一个代码 200,因为我有权继续但在此检查之后我得到一个 503 错误而没有以前的标题。

我提前感谢那些愿意帮助我了解正在发生的事情的人。谢谢

https://res.cloudinary.com/dkthctbvw/image/upload/v1572298933/crs_mo3iaa.jpg

axios.put(`$this.host_url/api/posts/$newProduct._id/update`, newProduct)
                .then(res => 
                    this.loading = false
                    this.lds.remove()
                    this.router.navigate(['/articles'])
                )
                .catch(err => console.log(err));

https://res.cloudinary.com/dkthctbvw/image/upload/v1572298573/200_afsepz.jpg

https://res.cloudinary.com/dkthctbvw/image/upload/v1572298573/503_pivluy.jpg

【问题讨论】:

【参考方案1】:

错误代码 503 与 CORS 问题无关。它只是告诉您该服务不可用。

超文本传输​​协议 (HTTP) 503 服务不可用服务器 错误响应代码表示服务器尚未准备好处理 请求。

您需要检查您的服务器配置并查看您的 API。 或许this可以帮到你。

【讨论】:

感谢您的回答,但它并没有解决我的问题。问题是我在哪里发送“PUT”请求,并且只在这个级别。 那你需要调试Backend来检查为什么它对PUT方法不可用

以上是关于为啥浏览器对 OPTION 请求得到 200 响应和 503 响应?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 在得到预期的 200 之前总是得到错误的 POST 400 响应

为啥 IIS 返回空响应?

HTTP的响应码?

为啥我的 ajax 请求得到响应 0?

为啥我从这个请求 iOS JSON 得到空响应

为啥我无法通过普通浏览器请求获得 ajax 请求的响应? [复制]