2012-01-13 110 views
0

我開發了一個ASP.NET MVC2應用程序,並且實現了一個登錄功能。使用ajax請求處理請求在ASP.Net MVC 2中的重定向

我有其他的意見,有阿賈克斯調用。有時,我發現ajax調用顯示登錄頁面。

在試圖擺脫這個問題,我試圖模擬的情況,但響應的代碼,我從我的應用程序中獲得了200這是OK

我使用ASP.Net MVC2。爲什麼我得到200,我應該實際上從我當前的視圖獲取302服務器重定向登錄頁面重定向。

指導我處理這種情況。

回答

1

爲什麼會出現200,我應該是真正從我當前視圖得到一個302服務器 重定向的登錄頁面重定向。

這是因爲jQuery遵循重定向,最終以200和登錄頁面結束。我向你推薦following article,它說明了一種非常優雅的配置ASP.NET的方式,假設這個請求是通過AJAX調用進行的,那麼它可以發送未經身份驗證的請求的401狀態碼。那麼你的客戶代碼將如下所示:

$.ajax({ 
    url: '/foo', 
    type: 'POST', 
    data: { foo: 'bar' }, 
    statusCode: { 
     200: function (data) { 
      alert('200: Authenticated'); 
      // Do whatever you was intending to do 
      // in case of success 
     }, 
     401: function (data) { 
      alert('401: Unauthenticated'); 
      // Handle the 401 error here. You can redirect to 
      // the login page using window.location.href 
     } 
    } 
}); 
+0

感謝您指出該文章。我想我們從這個模塊中獲得的好處是值得的。但他說他沒有測試過。如果你這樣做,讓我知道,否則我會測試和更新我在這篇文章中的評論。 – Saravanan 2012-01-13 13:12:37