我以前在基本 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框架设置。

10-08 08:30