asp.net mvc:如何检测使用ajax调用页面的时间

Omu*_*Omu 17 ajax asp.net-mvc jquery

如何检测在asp.net mvc中使用ajax调用页面的时间?

Ric*_*ner 35

根据Professional ASP.NET MVC 1.0一书,MVC AJAX库将插入一个名为"X-Requested-With"的表单字段,其值为"XMLHttpRequest".

然后,您可以在System.Web.Mvc中使用扩展方法,这意味着Request.IsAjaxRequest()如果这是一个AJAX请求,您只需调用并获得一个简单的真或假说法.


Seb*_*son 7

您可以像这样手动检查:

bool isAjaxRequest = request.Headers["X-Requested-With"] == "XMLHttpRequest";
Run Code Online (Sandbox Code Playgroud)

或者,当您在ASP.NET MVC中的Controller中,它引用System.Web.Mvc时,您将在HttpRequestBase对象上获得一个扩展方法,您可以在ActionMethod中访问该方法,如下所示:

bool isAjaxRequest = Request.IsAjaxRequest();
Run Code Online (Sandbox Code Playgroud)


Ode*_*ded 5

没有特定的方法来确定调用是通过javascript还是直接在浏览器中进行,因为它是常规的http调用.

您可以向ajax调用添加标头以将其与其他调用区分开,或者可以将参数添加到仅在ajax调用上使用的查询字符串中.

ASP.NET MVC ajax确实添加了这样的标题 - X-Requested-With: XMLHttpRequest你可以用它来嗅探这是mvc ajax库的ajax调用.但是,如果您使用jQuery或您自己的手滚动ajax调用,则不会设置此项.此外,其他客户端可能会欺骗此标头(例如,使用WebClient),因此找到它并不能保证已经进行了ajax调用.