asp.net / Angular 服务器中的跨域 (CORS) 错误

Cross domain (CORS) error in asp.net / Angular server

我正在开发 Angular 1 / ASP.net 基于技术堆栈的 Web 应用程序。 出于某种原因,我无法使用生产服务器在本地环境中部署 api 服务器。我在本地环境中用 nginx 启动了 UI 端。 登录页面是:

http://localhost:8080/login.html

并且当点击登录按钮时,它从生产服务器调用API。

http://devprod2.com/api/oauth/login

但我收到错误消息:

Response for preflight has invalid HTTP status code 400

我在浏览器中打开了跨域选项,扩展名为chrome CORS。 但似乎此错误与某些 CORS 问题有关。 你愿意帮我解决这个问题吗?

当您使用某些方法时会出现预检请求,例如POST

这是在跨域POST发生之前自动发生的请求。

在发出 POST 请求之前,正在检查服务器上是否存在正确的 CORS headers。

您的预检 OPTIONS 请求似乎给出了无效响应。在您的服务器上,确保您 return 200 用于所有 OPTIONS 请求,并确保 CORS headers 在服务器上用于所有请求。

我相信 Angular 1 也有针对 POST 请求的选项,这将阻止发出预检请求,但您必须自己进一步调查。

或者,根据您的设置,可以重写请求以避免仅由浏览器强制执行的 CORS。