Vous pouvez également utiliser Fiddler pour regarder les requêtes. Vous apprendrez beaucoup en faisant cela.
CrazyDart
Réponses:
70
Tous les appels AJAX effectués par jQuery auront un en-tête ajouté pour indiquer qu'il s'agit d'AJAX. L'en-tête à vérifier est X-Requested-With, et la valeur sera XMLHttpRequestquand il s'agit d'un appel AJAX.
Notez que les requêtes AJAX sont des GET ou POST normaux, donc à moins que vous (ou votre bibliothèque AJAX comme jQuery) n'ajoutiez un en-tête supplémentaire dans la requête, il n'y a aucun moyen de savoir avec certitude s'il s'agit d'AJAX ou non.
@Omu: Request.Headers["X-Requested-With"]ou similaire. Vérifiez MSDN. Les en-têtes sont toujours liés aux demandes.
Robert Koritnik
179
Il y a aussi le Request.IsAjaxRequestsi vous utilisez une version ultérieure de MVC. Je n'ai plus la version 1 donc je ne peux pas dire si c'est en version 1.
Si vous avez besoin de cette vérification dans Global.asax.cs, essayez ceci:
new HttpRequestWrapper(Request).IsAjaxRequest()
@BuildStarted J'ai besoin de cette vérification dans Global.asax.cs donc cela ne m'aidera pas
Omu
2
@BuildStarted n'est pas disponible dans Application_Error
Omu
1
Oui vous avez raison. C'est parce qu'il est en dehors de MVC et ne l'utilise pas HttpRequestBase. Je n'ai pas eu besoin de ça, alors je n'ai pas cherché trop profondément. Merci pour l'information.
Construit
20
new HttpRequestWrapper (Request) .IsAjaxRequest ();
1
BTW: Si vous êtes à l'intérieur du filtre d'autorisation personnalisé, utilisez ceci pour obtenir la méthode IsAjaxRequest sur Request: filterContext.HttpContext.Request.IsAjaxRequest
Réponses:
Tous les appels AJAX effectués par jQuery auront un en-tête ajouté pour indiquer qu'il s'agit d'AJAX. L'en-tête à vérifier est
X-Requested-With
, et la valeur seraXMLHttpRequest
quand il s'agit d'un appel AJAX.Notez que les requêtes AJAX sont des GET ou POST normaux, donc à moins que vous (ou votre bibliothèque AJAX comme jQuery) n'ajoutiez un en-tête supplémentaire dans la requête, il n'y a aucun moyen de savoir avec certitude s'il s'agit d'AJAX ou non.
la source
Request.Headers["X-Requested-With"]
ou similaire. Vérifiez MSDN. Les en-têtes sont toujours liés aux demandes.Il y a aussi le
Request.IsAjaxRequest
si vous utilisez une version ultérieure de MVC. Je n'ai plus la version 1 donc je ne peux pas dire si c'est en version 1.Si vous avez besoin de cette vérification dans Global.asax.cs, essayez ceci:
new HttpRequestWrapper(Request).IsAjaxRequest()
la source
HttpRequestBase
. Je n'ai pas eu besoin de ça, alors je n'ai pas cherché trop profondément. Merci pour l'information.Cela fonctionne pour moi dans ASP.NET MVC 3
la source
new HttpRequestWrapper(Request).IsAjaxRequest()