私は目立たない ajax を使用しており、カスタム認証タグに到達するとステータス コードが設定され、json データの準備が整いましたが、情報を返すときにステータス コードがコンソールに表示され、たとえば「読み込みに失敗しました」と表示されます。リソース: サーバーは 403 (禁止) のステータスで応答しました。」onfailure ajax オプションにアラートを配置しましたが、そこでは何も発生しません。statuscode エラーを ajax 呼び出しの失敗と見なしていないようです。onFailure ajax オプションでステータス コード エラーを処理するにはどうすればよいですか?
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var urlHelper = new UrlHelper(filterContext.RequestContext);
filterContext.HttpContext.Response.StatusCode = 403;
filterContext.Result = new JsonResult()
{
Data = new
{
Error = "NotAuthorized",
LogOnUrl = urlHelper.Action("AccessDenied", "Error", new { area=""})
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
これは私のカスタム承認属性にあります。
@Ajax.ActionLink("Company", "Company", "Admin", null, new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "centerAdmin", HttpMethod = "POST", OnComplete = "Oncomplete", OnSuccess = "OnSuccess", OnFailure = "OnFailure" })
私のAjaxの目立たない呼び出し
<script>
function OnSuccess(ajaxContext)
{
alert("dfgsdfgsdfgsdfgfdgsdfgddf");
}
function OnFailure(ajaxContext) {
alert("dfgsdfsdfgdfgsgsdf");
}
function Oncomplete(ajaxContext) {
alert("dfgsddfffffffffffffffffffffgsdf");
}
これらのイベントのいずれかが発生したかどうかを確認するための単純なアラート。