Ajax 如何執行 Response.Redirect


Ajax 直接對服務端的Response.Redirect是不感冒的, 另覓途徑, 具體可行辦法如下:

Web Service 服務端:

public WXService()
    {
        if (!IsValidTicket)
        {
            string result = "{\"success\": true}";
            Context.Response.Clear();
            Context.Response.ContentType = "application/json; charset=UTF-8";
            Context.Response.Headers.Add("Redirect", "true");
            Context.Response.Headers.Add("RedirectUrl", "Errors.aspx?code=401");
            Context.Response.Flush();
            Context.Response.Write(result);
            throw new Exception("Ticket is logout.");
        }
    }

ajax 客戶端:

全局定義:
$.ajaxSetup({ complete: function (XMLHttpRequest, textStatus) { var redirect = XMLHttpRequest.getResponseHeader("Redirect"); if (redirect == "true") { window.location.href = XMLHttpRequest.getResponseHeader("RedirectUrl"); } } });

響應結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM