Asp.net web api 多个COR用于GET,但不用于航班前请求Web api 2的PUT/POST

Asp.net web api 多个COR用于GET,但不用于航班前请求Web api 2的PUT/POST,asp.net-web-api,cors,asp.net-web-api2,asp.net-web-api-routing,Asp.net Web Api,Cors,Asp.net Web Api2,Asp.net Web Api Routing,当我在Web.config中配置CORS时,如以下所示,一切正常: <customHeaders> <add name="Access-Control-Allow-Origin" value="http://localhost:3000"/> <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS"/> <add name="Access-

当我在Web.config中配置CORS时,如以下所示,一切正常:

<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost:3000"/>
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="accept, cache-control, credentials, content-type, authorization, origin, X-Requested-With, X-dev-mode"/>
</customHeaders>
它适用于GET(即获取内容等),但在使用POST/PUT(即保存内容等)时,在浏览器(Chrome)控制台中会出现此错误

无法加载获取API。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源

请求在选项上失败。请注意,我有自定义处理程序,并且还配置了路由。
还有一件事需要提及的是,保存内容的PUT/POST调用是通过react进行的ajax调用。这可能是个问题吗?

问题是第二个URL中的尾随斜杠。将其更改为此,它将工作:

var cors = new EnableCorsAttribute("http://localhost:3000,http://someOtherUrl.com", "*", "*");

您是否尝试将空白空间移除到访问控制,允许使用类似于

的方法
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />

<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />