我以前在我的基本控制器上创建了一个方法:
public bool IsJsonRequest()
{
var acceptTypes = Request.AcceptTypes;
return acceptTypes != null &&
acceptTypes.Any(a => a.Equals("application/json",
StringComparison.OrdinalIgnoreCase));
}
Run Code Online (Sandbox Code Playgroud)
然后我偶然发现了AjaxRequestExtensions.IsAjaxRequest().它的文档非常模糊:
如果指定的HTTP请求是AJAX请求,则为true;否则为false.否则,错误.
这让我想到了,它使得它成为AJAX的HTTP请求是什么?它是否比检查请求者接受的内容类型还要多,或者编码不是"AJAX"的要求?
(请注意,在我的情况下,我的操作只能从我网站上的JS页面调用,而JSON是唯一必需的编码.)
我有一个 ASP.NET MVC 5 应用程序,它处理来自我的网站的使用 fetch API 发出的请求。当我的控制器中发生异常时,我使用自定义的“OnException”方法(从 System.Web.Mvc.Controller 重写)以 JSON 格式发送结果,其中包含有关错误的数据。我这样做是因为我不想发送默认的 HTML 错误页面。在这个对所有控制器都是全局的方法中,我需要检查请求是否已使用 fetch API 执行(如果没有,我什么都不做)。
我怎样才能做到这一点 ?