2010-10-05 46 views

回答

64

jQuery所有的AJAX調用將添加一個頭,表明它是AJAX。要檢查的標頭爲X-Requested-With,當它是AJAX調用時,該值將爲XMLHttpRequest

請注意,AJAX請求是正常的GET或POST,所以除非您(或您的AJAX庫如jQuery)在請求中添加額外的標頭,否則無法確定它是否爲AJAX。

+2

好吧,那麼如何在asp.net中檢查這個標題? – Omu 2010-10-05 13:50:47

+2

@Omu:'Request.Headers [「X-Requested-With」]'或類似的。檢查MSDN。標題**總是**與請求相關。 – 2010-10-05 13:52:34

156

如果您使用的是更高版本的MVC,還有Request.IsAjaxRequest。我沒有第1版了,所以我不能說,如果它在版本1

如果您需要此項檢查在Global.asax.cs中試試這個: new HttpRequestWrapper(Request).IsAjaxRequest()

+1

@BuildStarted我需要Global.asax.cs中的這個檢查,所以這不會幫助我 – Omu 2010-10-05 13:52:20

+0

@Omu:取決於global.asax.cs的哪個事件。這個bool屬性在內部完成了與RedFiler建議的相同的事情。並且請注意,標題**總是與請求**相關。 – 2010-10-05 13:53:10

+0

'IsAjaxRequest'是'HttpRequestBase'的擴展,所以它在'Request'可用的地方應該是可用的。 – Buildstarted 2010-10-05 13:55:11

48

這對我的作品在ASP .NET MVC 3

if (Request.IsAjaxRequest()) 
{ 
    // ajax request handled 
} 
+1

這是不提供的Application_Error – ajbeaven 2012-01-09 01:22:32

+1

這是不提供的Application_BeginRequest – Varadha31590 2016-03-30 09:19:16

+0

在Global.asax中:'new HttpRequestWrapper(Request).IsAjaxRequest()' – Morgs 2016-07-25 10:00:21

相關問題