2015-10-09 51 views
0

我需要通過Ajax調用從我的MVC控制器中檢索JSON或HTML。 問題是爲什麼下面的GET請求不起作用?爲什麼Ajax http獲取不會導致json?

$.ajax({ 
    url: url, 
    type: "POST", //It works but doesn't work with GET 
    success: function (data) { 
     ... 
    } 
}); 

public ActionResult Index() 
{ 
     if (User.Identity.IsAuthenticated) 
     { 
       ... 
       return View(selectedUser); 
     } 
     return Json(new { Error = Messages.AUTHENTICATIONEXPIRED }); 
} 

使用HTTP獲取它不會取代Json對象。 Action方法成功執行。 有沒有技術上的原因,我不知道?有沒有另一種方法使其工作,而無需進行POST調用? 感謝

+0

發生了什麼?一個錯誤?嘗試使用'[HttpGet]'裝飾動作方法' –

+0

當你試圖獲取它而不是post時,什麼都不起作用?你是否得到例外,404,還有其他什麼?你是否嘗試過調試服務器端,你顯示的方法是否叫做?這個方法是否有可能在你的真實代碼中用[POST]屬性裝飾過? –

+0

它只是檢索任何東西,而不是JSON對象。行動很好,是的,我確定我調試過它。 – DevT

回答

2

當通過GET返回JSON,你必須添加JsonRequestBehavior.AllowGet

return Json(new { Error = Messages.AUTHENTICATIONEXPIRED }, JsonRequestBehavior.AllowGet); 

更多信息there

+1

你是對的人,我完全忘了它。謝謝 – DevT

相關問題