как узнать, является ли запрос ajax в asp.net mvc?

91

кто-нибудь, как я могу узнать, является ли запрос ajax? (Я использую jquery для ajax)

  • 1
    Вы также можете использовать Fiddler для просмотра запросов. Делая это, вы многому научитесь.
Теги:
asp.net-mvc

3 ответа

66
Лучший ответ

Все вызовы AJAX, сделанные jQuery, будут содержать заголовок, указывающий, что это AJAX. Контрольный заголовок X-Requested-With, а значение будет XMLHttpRequest, когда это вызов AJAX.

Обратите внимание, что запросы AJAX являются нормальными GET или POST, поэтому, если вы (или ваша библиотека AJAX, например jQuery) не добавили дополнительный заголовок в запрос, неизвестно, является ли это AJAX или нет.

  • 2
    хорошо, так как я могу проверить этот заголовок в asp.net?
  • 2
    @Omu: Request.Headers["X-Requested-With"] или аналогичный. Проверьте MSDN. Заголовки всегда связаны с запросами.
162

Также существует Request.IsAjaxRequest, если вы используете более позднюю версию MVC. У меня больше нет версии 1, поэтому я не могу сказать, если она в версии 1.

Если вам нужна эта проверка в Global.asax.cs, попробуйте это: new HttpRequestWrapper(Request).IsAjaxRequest()

  • 1
    @BuildStarted Мне нужна эта проверка в Global.asax.cs, так что это мне не поможет
  • 0
    @Omu: Зависит от того, какое событие в global.asax.cs. Это свойство bool делает то же самое внутри, что предложил RedFiler. И учтите, что заголовки всегда связаны с запросами .
Показать ещё 7 комментариев
50

Он работает для меня в ASP.NET MVC 3

if (Request.IsAjaxRequest())
{
     // ajax request handled
}
  • 1
    Это не доступно в Application_Error
  • 1
    Это не доступно в Application_BeginRequest
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню