我以前在基本 Controller 上创建了一个方法:
public bool IsJsonRequest()
{
var acceptTypes = Request.AcceptTypes;
return acceptTypes != null &&
acceptTypes.Any(a => a.Equals("application/json",
StringComparison.OrdinalIgnoreCase));
}
然后我偶然发现了
AjaxRequestExtensions.IsAjaxRequest()
。 documentation for it is very vague:这让我开始思考,关于使它成为AJAX的HTTP请求又有什么用呢?除了检查请求者接受的内容类型之外,还需要更多内容吗?或者编码不是成为“AJAX”的必要条件吗?
(请注意,在我的情况下,只能从网站上的JS页面调用我的操作,而JSON是唯一必需的编码。)
最佳答案
它检查X-Requested-With
(HTTP_X_REQUESTED_WITH)头是否设置为XMLHttpRequest。发出AJAX请求时,此 header 由jQuery和许多其他JavaScript框架设置。