これは愚かな質問かもしれませんが、私はこれについてしばらく考えていました。たぶん私はこのすべての仕組みや、もちろんこのシナリオをテストしていない方法についていくつかの詳細を忘れているかもしれません。もちろんajax呼び出しのMVCのAntiForgeryTokenとIsAjaxRequest()メソッド
[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メソッドは、Webのどこからでも呼び出すことができますが、AntiForgeryTokenが一致しないために失敗します。 [ValidateAntiForgeryToken]属性を取り除くと、Ajaxを使ってWeb上の別のサイトから呼び出されたときにメソッドが実行されるのですか、Ajax呼び出しは同じWeb内で呼び出されたときだけ成功するのでしょうか?
ありがとうございました。