创建新记录时的 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 策略的主要内容,如果未能解决你的问题,请参考以下文章
带有 Javascript 的 Dot Net Core Web API - CORS 策略错误