无法POST到Web Api方法

时间:2017-09-18 10:58:21

标签: asp.net-mvc asp.net-web-api

我正在尝试对我的Web API中的方法发布请求,但是我收到错误405: Method not allowed。使用Fiddler我可以告诉更具体的错误消息是The requested resource does not support http method 'POST'。我已经尝试了不同的方法,以启用POST,但它似乎不起作用。

我的API中的方法:

[HttpPost]
public IHttpActionResult GetOrders(string param1, string param2, string param3)
{
    // logic
    // logic
    // logic

    return Json(orders);
}

我正在使用$.post在我的视图中调用它。如果我在与视图相同的文件中使用API​​方法,这很有效,但是一旦我将其分解,并将GetOrders()放在API中,它就会中断并且不允许POST。有什么我想念的,为了能够发布到我的方法?在web.config中启用了CORS,我尝试使用[EnableCors(origins: "*", headers: "*", methods: "*")]将其设置在我的方法之上,但这似乎也不想播放。

1 个答案:

答案 0 :(得分:0)

将此添加到Web.Config

<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>

您无需通过 [EnableCors]

来装饰操作

同样传递单独的字符串,尝试传递模型

[HttpPost]
public IHttpActionResult GetOrders(MyModel model)
{
    // logic
    // logic
    // logic

    return Json(orders);
}

public class MyModel{
    public string string1 {get;set;}
    public string string2 {get;set;}
}