ASP.NET如何知道请求是否是AJAX?

时间:2014-03-27 14:37:50

标签: javascript jquery ajax asp.net-mvc

我正在写一个MVC应用程序,我惊呆了,知道我可以在我的控制器中执行一个Request.isAJAXRequest()并返回一个JSONResult,如果它是AJAX,或返回一个普通的HTML Razor View,如果它不是

这非常有用,但我想知道这实际上是如何工作的。标题中是否有东西将其指定为AJAX?

以下是我从IE Developer工具中提取的AJAX POST的请求标头。 enter image description here

2 个答案:

答案 0 :(得分:6)

是的,名为X-Requested-With的标头告诉服务器XMLHttpRequest用于发出请求(即Ajax)。

答案 1 :(得分:2)

请求标题中的 X-Requested-With 标题。

由于标题可以删除已更改,因此它不是检测 ajax 调用的完整,有保证的解决方案。

<强>更新

在您的情况下(将正确的格式返回给客户端),另一种方法是检查接受标头。它可以是json,xml,html或other things。基于此,您可以决定返回什么。