为什么我不能在HTTP响应头中设置'允许'?

Gla*_*ius 10 c# asp.net-mvc asp.net-web-api

我使用ASP.NET Web Api编写了一个RESTful API.现在我试图让它返回控制器允许的动词.我正在尝试使用以下代码:

[AcceptVerbs("OPTIONS")]
public HttpResponseMessage Options()
{
    var response = new HttpResponseMessage(HttpStatusCode.OK);
    response.Headers.Add("Access-Control-Allow-Origin", "*");
    response.Headers.Add("Access-Control-Allow-Methods", "POST");
    response.Headers.Add("Allow", "POST");

    return response;
}
Run Code Online (Sandbox Code Playgroud)

但是我没有在我的回复中获得允许标题,而是获得了一个500 Internal Server Error.调试时我收到以下错误:

{"Misused header name. Make sure request headers are used with HttpRequestMessage, response headers with HttpResponseMessage, and content headers with HttpContent objects."}
Run Code Online (Sandbox Code Playgroud)

可以设置那个标题吗?

Esa*_*ija 13

如错误消息所示,您必须使用带有HttpContent对象的内容标头.

response.Content.Headers.Add("Allow", "POST");
Run Code Online (Sandbox Code Playgroud)

必须承认这是一种奇怪的API ...