iis 尽管我在CORS配置中允许使用该方法,但为什么我收到对DELETE请求的405响应?

vdgimpew  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(161)

我有一个Blazor WebAssembly和C#Web API托管在IIS上,当尝试发送PUT或DELETE请求到我的API时,我得到这个cors错误:

当我在我的程序中有这个时。cs:

这是我在IIS上得到的响应头:

这是不对的
因为在我的本地主机上,当发送PUT或DELETE时,我得到这个返回,响应本地主机:

localhost按预期工作,但IIS不能。
为什么会这样?

4xrmg8kj

4xrmg8kj1#

不要混淆

  • 资源支持的方法
  • CORS资源允许的方法。

它们是两种不同的东西,尽管后者通常构成前者的子集。当然,您的CORS配置允许DELETE方法:

Access-Control-Allow-Methods: GET,PUT,POST,DELETE,PATCH,OPTIONS

但是在CORS配置中允许方法并不会自动使资源支持该方法!请注意Allow header中缺少DELETEAllow header列出了资源支持的方法集:

Allow: GET, HEAD, OPTIONS, TRACE

列表中没有DELETE表示您的资源当前不支持该方法,响应状态(405 Method Not Allowed)是另一个线索。
你得把它写进你的路线里。

相关问题