요청이 ajax인지 아닌지 확인하는 방법 뒤의 코드 - ASPNET 웹폼
해봤습니다.Request.IsAjaxRequest
그러나 이는 WebForms에는 존재하지 않습니다.저는 JQuery ajax 전화를 걸고 있습니다.이것이 C#에서 ajax 요청인지 아닌지 확인하려면 어떻게 해야 합니까?
당신은 MVC 코드에 있는 것과 같이 당신만의 확장 방법을 만들 수 있습니다.
예.
public static bool IsAjaxRequest(this HttpRequest request)
{
if (request == null)
{
throw new ArgumentNullException("request");
}
return (request["X-Requested-With"] == "XMLHttpRequest") || ((request.Headers != null) && (request.Headers["X-Requested-With"] == "XMLHttpRequest"));
}
HTHs,
찰스
편집: 사실 콜백 요청도 아약스 요청이지만,
public static bool IsAjaxRequest(this HttpRequest request)
{
if (request == null)
{
throw new ArgumentNullException("request");
}
var context = HttpContext.Current;
var isCallbackRequest = false;// callback requests are ajax requests
if (context != null && context.CurrentHandler != null && context.CurrentHandler is System.Web.UI.Page)
{
isCallbackRequest = ((System.Web.UI.Page)context.CurrentHandler).IsCallback;
}
return isCallbackRequest || (request["X-Requested-With"] == "XMLHttpRequest") || (request.Headers["X-Requested-With"] == "XMLHttpRequest");
}
ScriptManager가 InSyncPostBack인지 확인해 봅니다.
ScriptManager.GetCurrent(Page).IsInAsyncPostBack
일반적으로, 당신은 다음에 대한 테스트가 필요할 것입니다.X-Requested-With
헤더의 값이 'XMLHtpRequest'인지 확인합니다.저는 아직 C# 개발자는 아니지만, 빠른 구글 검색 결과 C#에서는 다음과 같은 일이 일어난다고 합니다.
Request.Headers["X-Requested-With"] == "XMLHttpRequest";
네.Request.IsAjaxRequest
에 대한 헤더 및 쿼리 문자열을 봅니다.X-Requested-With
, 하지만 당신의 잡동사니가 그들을 보내지 않는 것 같습니다.X-Requested-With
머리말
Fiddler를 사용하여 어떤 헤더를 보내고 있는지 확인하거나 아니면 POST URL을 다음으로 설정하여 쿼리 문자열로 보낼 수 있습니다.
/whatever.aspx?x-requested-with=XMLHttpRequest
사용하는 확장자를 만들었습니다.
internal static bool IsAjaxRequest(this HttpRequestMessage request)
{
return request != null && request.Headers.Any(h => h.Key.Equals("X-Requested-With", StringComparison.CurrentCultureIgnoreCase) &&
h.Value.Any(v => v.Equals("XMLHttpRequest", StringComparison.CurrentCultureIgnoreCase)));
}
다음으로 수업 꾸미기로 장식하기[WebMethod(EnableSession = true)]
만약 당신이 코드 뒤에 다음 함수를 쓰고 ajax call에서 같은 함수를 호출한다면 당신은 확신할 것입니다.
[WebMethod(EnableSession = true)]
public static void getData(string JSONFirstData,string JSONSecondData, string JSONThirdData, string JSONForthData, ...)
{
//code
}
Ajax에서 URL은 다음과 같습니다.URL :'/Codebehind.aspx/getData'
언급URL : https://stackoverflow.com/questions/4392836/how-to-check-if-request-is-ajax-or-not-in-codebehind-asp-net-webforms
'programing' 카테고리의 다른 글
WooCommerce 체크아웃 필드 사이에 제목을 추가하는 방법 (0) | 2023.10.29 |
---|---|
jQuery를 사용하여 비디오 src를 어떻게 변경합니까? (0) | 2023.10.29 |
PHP 스크립트로 멀티사이트에서 새로운 사이트를 동적으로 만드는 방법은? (0) | 2023.10.29 |
getDefaultSharedPreferences와 getSharedPreferences의 차이 (0) | 2023.10.29 |
자바스크립트에서 이것과 self의 차이점 (0) | 2023.10.29 |