我正在尝试对我的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: "*")]
将其设置在我的方法之上,但这似乎也不想播放。
答案 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;}
}