我之前在我的基本 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 :
true if the specified HTTP request is an AJAX request; otherwise, false.
这让我开始思考,HTTP 请求如何使其成为 AJAX?除了检查请求者接受的内容类型之外还有更多的内容吗?或者编码不是“AJAX”的要求?
(请注意,在我的例子中,我的操作只能从我网站上的 JS 页面调用,并且 JSON 是唯一必要的编码。)
最佳答案
它检查 X-Requested-With
(HTTP_X_REQUESTED_WITH) header 是否设置为 XMLHttpRequest。该 header 由 jQuery 和许多其他 javascript 框架在发出 AJAX 请求时设置。
关于.net - ASP.NET MVC - IsAjaxRequest() 的实际含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523827/