我觉得我花了很多时间试图让它发挥作用。关于这个主题,有很多有用的SO答案:
但......实际上没有人解决我的问题。我觉得是时候说出我自己的问题了,解释一下我做了什么,我经历的是我的问题。
Microsoft.AspNet.WebApi.Cors
[EnableCors("http://localhost:PORT", "*", "GET,POST,DELETE,OPTIONS")]
。GET请求在这一点上起作用,就像一个魅力。
当我执行PUT或DELETE时,pre-flight request失败。我在客户端浏览器中收到内部服务器错误响应。事实证明OPTIONS请求失败,因为我的web api控制器中没有选项方法。
通过添加options方法如下:
public HttpResponseMessage Options()
{
var response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.OK
};
return response;
}
PUT和DELETE请求确实有效,欢呼!
我不确定在哪里绘制开发人员与框架的责任范围,但感觉就像我不应该太在意OPTIONS方法。 我是否必须明确指定此方法才能使PUT,DELETE,OPTIONS正常工作?
感谢您的帮助!