我使用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;
}
但是我没有在我的回复中获得允许标题,而是获得了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."}
是否可以设置该标题?
答案 0 :(得分:13)
如错误消息所示,您必须使用带有HttpContent
个对象的内容标头。
response.Content.Headers.Add("Allow", "POST");
必须承认这是一种奇怪的API ......
答案 1 :(得分:2)
允许是内容标题。
response.Content.Headers.Allow.Add("POST");