ASP.NET Web API 2的PUT,DELETE,OPTIONS

时间:2015-04-15 07:48:34

标签: cors asp.net-web-api2

我觉得我花了很多时间试图让它发挥作用。关于这个主题,有很多有用的SO答案:

但......实际上没有人解决我的问题。我觉得是时候说出我自己的问题了,解释一下我做了什么,我经历的是我的问题。

  1. 通过NuGet
  2. 安装Microsoft.AspNet.WebApi.Cors
  3. 在我的WebAPI控制器上添加了属性[EnableCors("http://localhost:PORT", "*", "GET,POST,DELETE,OPTIONS")]
  4. 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正常工作?

    感谢您的帮助!

0 个答案:

没有答案