我正在写一个MVC应用程序,我惊呆了,知道我可以在我的控制器中执行一个Request.isAJAXRequest()并返回一个JSONResult,如果它是AJAX,或返回一个普通的HTML Razor View,如果它不是
这非常有用,但我想知道这实际上是如何工作的。标题中是否有东西将其指定为AJAX?
以下是我从IE Developer工具中提取的AJAX POST的请求标头。
答案 0 :(得分:6)
是的,名为X-Requested-With
的标头告诉服务器XMLHttpRequest
用于发出请求(即Ajax)。
答案 1 :(得分:2)
请求标题中的 X-Requested-With 标题。
由于标题可以删除或已更改,因此它不是检测 ajax 调用的完整,有保证的解决方案。
<强>更新强>
在您的情况下(将正确的格式返回给客户端),另一种方法是检查接受标头。它可以是json,xml,html或other things。基于此,您可以决定返回什么。