Я работаю над примером приложения, используя ASP.NET MVC и AngularJS.
В коде на стороне сервера я написал атрибут фильтра действий, и в этом мне нужно проверить, является ли запрос обычным запросом (Browser) или AJAX.
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if ( filterContext.HttpContext.Request.IsAjaxRequest())
{
}
}
Метод, упомянутый в приведенном выше фрагменте кода "IsAjaxRequest()", не возвращает TRUE в случае запроса AJAX, выполненного с использованием службы $http Angular.
Я заметил, что в запросе нет заголовка X-Requested-With, и даже добавление заголовка не решило запрос.
Примечание. Это не вызов CORS.
Итак, мой вопрос.
-
Как filterContext.HttpContext.Request.IsAjaxRequest() определяет, является ли запрос AJAX или нет?
-
Я могу проверить заголовок запроса (имеет ли он определенный заголовок или нет) и решить, является ли запрос AJAX или нет. Это правильный и единственный подход?