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
'programing' 카테고리의 다른 글
최대 절전 모드를 사용하여 mariadb 시퀀스 nextval이 2씩 증가하고 있습니다. (0) | 2023.08.01 |
---|---|
신속한 전화번호 호출 (0) | 2023.08.01 |
jquery agax FormData()를 여러 파일과 함께 사용하면서 다중 파트/폼 데이터 요청에 대한 경계를 설정하는 방법 (0) | 2023.08.01 |
Sass - 배경 불투명도를 위해 16진수를 RGBa로 변환 (0) | 2023.08.01 |
여러 비동기 파이프 변수가 있는 *ngIf (0) | 2023.08.01 |