.net - ASP.NET MVC - IsAjaxRequest() 的实际含义是什么?

标签 .net asp.net-mvc ajax asp.net-mvc-3

我之前在我的基本 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/

相关文章:

jquery - 如何在 ASP.NET MVC 中保留表单的异步上传文件?

每次追加都会更新 Javascript、JSP 输入值

c# - 为什么 client.GetUserDialogsAsync() 抛出错误无法读取 TLSharp 中的数据包长度

c# - resource.GetObject 中使用的美元 ($) 字符

.net - 当 Collection 数据源更新时更新 ListView

c# - 如何在 C# 中使用 Linq 对 OrderedDictionary 进行排序(使用 .NET 3.5)?

javascript - 在 ASP.NET MVC 表单上提交?

c# - Entity Framework 从具有子实体的父实体中提取简单列表

php - CouchDB实时Ajax推送更新

javascript - 长时间运行的 AJAX 请求在几分钟后重新提交