Ajax 與 Sys.WebForms.PageRequestManagerParserErrorException異常

來源:互聯網
上載者:User

  最近做項目遇到一個奇怪的問題:如果瀏覽器session丟失後,點擊一個按鈕,觸發一個Ajax方法,瀏覽器會彈出一個對話方塊。異常資訊如下: 

  後來經過尋找,原來我的頁面繼承了一個BasePage.cs檔案,BasePage.cs檔案裡判斷session是否存在,如果不存在直接跳轉到登入頁(這裡使用的跳轉是Response.Redirect())。正是因為有這跳轉代碼的存在所有才導致了報錯。Ajax方法是無法執行頁面跳轉的操作的。這裡如果需要讓Ajax方法執行跳轉頁面的操作,需要在web.Config檔案裡配置一下。添加以下代碼即可:

<system.web>  

  <httpModules>   

    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0,                   Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 

    </httpModules>

 </system.web>  

 

  

  有的時候可能你會說,我的設定檔裡面已經加上了這個配置資訊,為什麼頁面還是會報錯呢?   

  這種方式只支援你在cs檔案裡面執行Response.Redirect()的跳轉,不支援Server.Transfer()和Server.Execute()的轉寄,以及Response.Write("<script></script>")在頁面輸出指令碼跳轉。

  但是你可以使用Response.Redirect()跳轉到指定頁,在那個指定頁裡面寫js指令碼。

 

 

  當然了,如果你偏不要在設定檔裡加上這段代碼,你也可以象網上說的那樣在分頁檔加上如下Js指令碼對異常資訊進行友好的處理。

  <script language="javascript" type="text/javascript">

    //當使用ajax的頁面,session丟失時,彈出提示並轉向

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);     function EndRequestHandler(sender, args)  

    {  

        if (args.get_error() != undefined){ 

            if(args.get_error().message.substring(0, 51) == "Sys.WebForms.PageRequestManagerParserErrorException")

  

                window.location.reload(); //出現Session丟失時的錯誤處理,可以自己定義。 

            else

                alert( "登入逾時,請重試! "); //其他錯誤的處理。

            args.set_errorHandled(true);

        }

    } 

    </script>

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.