programing

ASP.NET MVC - IsAjaxRequest()는 실제로 무엇을 의미합니까?

powerit 2023. 8. 1. 20:52
반응형

ASP.NET MVC - IsAjaxRequest()는 실제로 무엇을 의미합니까?

이전에 기본 컨트롤러에서 메서드를 생성한 적이 있습니다.

public bool IsJsonRequest()
{
    var acceptTypes = Request.AcceptTypes;
    return acceptTypes != null && 
           acceptTypes.Any(a => a.Equals("application/json",
                                         StringComparison.OrdinalIgnoreCase));
}

그러다 우연히 발견했어요AjaxRequestExtensions.IsAjaxRequest()이에 대한 설명서는 매우 모호합니다.

지정한 HTTP 요청이 AJAX 요청이면 true이고, 그렇지 않으면 false입니다.

이것은 저로 하여금 생각하게 했습니다. 그것을 AJAX로 만드는 HTTP 요청은 무엇일까요?요청자의 승인된 콘텐츠 유형을 확인하는 것 외에 더 많은 것이 있습니까? 아니면 인코딩이 'AJAX'가 될 필요가 없습니까?

(내 경우, 내 작업은 내 사이트의 JS 페이지에서만 호출되어야 하며, JSON이 유일하게 필요한 인코딩입니다.)

다음을 확인합니다.X-Requested-With(HTTP_X_REQUESTED_WITH) 헤더가 XMLHTTPRequest로 설정되고 있습니다.이 헤더는 JQuery 및 AJAX 요청 시 여러 자바스크립트 프레임워크에 의해 설정됩니다.

구체적으로 코드는 다음과 같은 기능으로 나눌 수 있습니다.

public static bool IsAjaxRequest(this HttpRequestBase request)
{
    if (request == null)
    {
        throw new ArgumentNullException("request");
    }

    return (request["X-Requested-With"] == "XMLHttpRequest") || ((request.Headers != null) && (request.Headers["X-Requested-With"] == "XMLHttpRequest"));
}

편집 - 2019년 1월 21일

저는 제 대답으로 돌아가서 제 링크가IsAjaxRequest이제 깨졌습니다.현재 링크로 업데이트했지만 이것은 AsNetWebStack repo이며 MVC v3 버전의 코드가 아닙니다.그렇긴 하지만, 조회할 때 코드는 여전히 위에 쓴 것과 동일합니다.

언급URL : https://stackoverflow.com/questions/4523827/asp-net-mvc-what-does-isajaxrequest-actually-mean

반응형