using System; namespace System.Web.Mvc { /// <summary>Represents a class that extends the <see cref="T:System.Web.HttpRequestBase" /> class by adding the ability to determine whether an HTTP request is an AJAX request.</summary> public static class AjaxRequestExtensions { /// <summary>Determines whether the specified HTTP request is an AJAX request.</summary> /// <returns>true if the specified HTTP request is an AJAX request; otherwise, false.</returns> /// <param name="request">The HTTP request.</param> /// <exception cref="T:System.ArgumentNullException">The <paramref name="request" /> parameter is null (Nothing in Visual Basic).</exception> public static bool IsAjaxRequest(this HttpRequestBase request) { if (request == null) { throw new ArgumentNullException("request"); } return request["X-Requested-With"] == "XMLHttpRequest" || (request.Headers != null && request.Headers["X-Requested-With"] == "XMLHttpRequest"); } } }
一直不清楚服務端是如何判斷一個請求是否是ajax請求,通過ILSpy檢視,才得知是通過判斷請求頭是否存在
X-Requested-With:XMLHttpRequest 來判斷是否是ajax請求。