创建新记录时的 WebAPI CORS 策略

Posted

技术标签:

【中文标题】创建新记录时的 WebAPI CORS 策略【英文标题】:WebAPI CORS Policy when Creating new record 【发布时间】:2021-11-15 12:53:59 【问题描述】:

我有一个连接到 .NET CORE WebAPI 的 React 前端,我可以在一个控制器中毫无问题地调用、GET、删除和创建,但是,在另一个控制器上,当我调用 Create 时,我得到了CORS 策略错误消息。什么会导致一个控制器中的错误并且只有创建?我可以毫无问题地调用 Get 和 Delete,也可以毫无问题地从 PostMan 调用 Create,就像我从我的 React 应用程序调用它一样。

创建代码:(这在我从 Postman 测试时有效,我暂时连接到本地主机上的 API,并且只有 WebAPI 中的这个控制器将我踢出 CORS 策略错误,并且只有在创建调用上)

public IActionResult Create(CarDetails, details)

     db.CarDetails.Add(details);
     db.SaveChanges();
     return Ok(details.DetailsId);


【问题讨论】:

【参考方案1】:

PostMan 忽略 CORS 标头并且不会关心它们。这就是 PostMan 在浏览器关心的情况下工作的原因。

话虽如此,我真的不知道为什么您的 API 会停止一个请求而不是另一个请求。标题有区别吗?

我认为当在 .NET 论坛上提问时,您的问题得到解决的机会会更高。 CORS 错误是由后端/api 主机的设置引起的,而不是由 React/JS/Client 端代码引起的。

您可能需要允许更多标头,打开 localhost:3000 或其他一些设置。

【讨论】:

【参考方案2】:

我让它工作了。一旦我将它添加到我的 API 调用文件中,它就起作用了:

headers: 
    "Content-type": "application/json"
  

【讨论】:

以上是关于创建新记录时的 WebAPI CORS 策略的主要内容,如果未能解决你的问题,请参考以下文章

MVC Web API - CORS 策略不起作用

带有 Javascript 的 Dot Net Core Web API - CORS 策略错误

Web API 2 对 CORS 的支持

react js客户端的CORS策略问题

Azure 应用服务 CORS MissingAllowOriginHeader 错误

在 .Net Core 中为 WEB API 控制器定义不同的(不同于全局的)CORS 策略