이것은 바보 같은 질문 일지 모르지만 나는 이것에 대해 잠시 생각해 봤습니다. 어쩌면이 모든 것이 어떻게 작동하는지에 대한 세부 사항을 잊어 버렸을 것입니다. 물론이 시나리오를 테스트하지 않았습니다.ajax 호출 및 IsAjaxRequest() 메서드에서 MVC의 AntiForgeryToken
물론[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult greetingMsg(string name, string timeOfDay)
{
if (!Request.IsAjaxRequest()) return null;
return Json(new { result = $"Hello {name}, good {timeOfDay}" });
}
, 우리는 Ajax 호출에 AntiForgeryToken를 보내야한다, 또는이 메소드는 실행되지 않습니다 :
이처럼 ASP.NET MVC 프로젝트에 간단한 JsonResult 액션 예를 상상해보십시오.이 JsonResult 메서드는 웹의 어느 곳에서나 호출 될 수 있지만 AntiForgeryToken이 일치하지 않아 실패합니다. 맞습니까? 좋습니다. [ValidateAntiForgeryToken] 속성을 제거하면 Ajax를 사용하여 웹 사이트에서 호출 할 때 메서드가 실행됩니까? 아니면 Ajax 호출이 동일한 웹 내에서 호출 될 때만 성공할 수 있습니까?
감사합니다.