ktoś, jak mogę wiedzieć, czy żądanie jest AJAX? (Używam jQuery dla Ajax)
asp.net
asp.net-mvc
ajax
Omu
źródło
źródło
Odpowiedzi:
Wszystkie wywołania AJAX wykonywane przez jQuery będą miały dodany nagłówek wskazujący, że jest to AJAX. Nagłówek do sprawdzenia to
X-Requested-With
, a wartość będzie,XMLHttpRequest
gdy będzie to wywołanie AJAX.Zwróć uwagę, że żądania AJAX to zwykłe żądania GET lub POST, więc jeśli Ty (lub Twoja biblioteka AJAX, taka jak jQuery) nie dodasz dodatkowego nagłówka w żądaniu, nie ma sposobu, aby wiedzieć, czy jest to AJAX, czy nie.
źródło
Request.Headers["X-Requested-With"]
lub podobny. Sprawdź MSDN. Nagłówki są zawsze związane z żądaniami.Jest też
Request.IsAjaxRequest
opcja, jeśli używasz nowszej wersji MVC. Nie mam już wersji 1, więc nie mogę powiedzieć, czy jest w wersji 1.Jeśli potrzebujesz tego sprawdzenia w Global.asax.cs, spróbuj tego:
new HttpRequestWrapper(Request).IsAjaxRequest()
źródło
HttpRequestBase
. Nie potrzebowałem tego, więc nie zajrzałem zbyt głęboko. Dzięki za ostrzeżenie.U mnie działa w ASP.NET MVC 3
źródło
new HttpRequestWrapper(Request).IsAjaxRequest()