ASP.NET,确定请求内容类型是否为JSON

ASP.NET,确定请求内容类型是否为JSON,asp.net,json,content-type,Asp.net,Json,Content Type,我想在HttpRequestBase类型上实现一个扩展方法IsJsonRequest():bool。从广义上讲,这个方法应该是什么样的,有没有参考实现 这是一个私有API 编辑: 建议;检查x-requested-with标头是否为“xmlhttprequest”?由于它是一个私有API,您可以控制JSON的内容类型,因此只需检查它是否为约定值即可 e、 g 由于它是一个私有API,您可以控制JSON的内容类型,因此只需检查它是否为约定值 e、 g 这将检查内容类型和X-Requested-Wi

我想在HttpRequestBase类型上实现一个扩展方法IsJsonRequest():bool。从广义上讲,这个方法应该是什么样的,有没有参考实现

这是一个私有API

编辑:


建议;检查x-requested-with标头是否为“xmlhttprequest”?

由于它是一个私有API,您可以控制JSON的内容类型,因此只需检查它是否为约定值即可

e、 g


由于它是一个私有API,您可以控制JSON的内容类型,因此只需检查它是否为约定值

e、 g


这将检查内容类型和X-Requested-With标头,其中:


这将检查内容类型和X-Requested-With标头,其中:


我也遇到了同样的问题,但不管出于什么原因,jQuery的$.get没有发送内容类型。相反,我必须在Request.AcceptTypes中签入“application/json”


希望这能在将来帮助其他人解决同样的问题。

我也遇到同样的问题,但不管出于什么原因,jQuery的$.get没有发送内容类型。相反,我必须在Request.AcceptTypes中签入“application/json”


希望这能帮助其他人在将来解决同样的问题。

注意:如果我阅读正确,Content Type标头会指定请求的格式-它与客户端期望得到的内容无关-这将是Accept标头:注意:如果我阅读正确,Content Type标头指定请求的格式-它与客户端期望得到的内容无关-这将是Accept标头:
public static bool IsJsonRequest(this HttpRequestBase request)
{
  bool returnValue = false;
  if(request.ContentType == "application/json")
  returnValue = true;

  return returnValue;            
}
public bool IsJsonRequest() {
    string requestedWith = Request.ServerVariables["HTTP_X_REQUESTED_WITH"] ?? string.Empty;
    return string.Compare(requestedWith, "XMLHttpRequest", true) == 0
        && Request.ContentType.ToLower().Contains("application/json");
}