2015-04-04 76 views
0

我的頁面上有一個adejax actionlink通過mvc中的ajax actionlink獲得成功響應標題

@Ajax.ActionLink("Pending", "ApproveRequest", "Admin", new { Id = request.Id }, new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "divItemAdd",OnSuccess="Successfun" }) 

ApproveRequest返回一些數據,並且還添加響應頭。

public ActionResult ApproveRequest(int Id) 
     { 
      using (ServiceRequestsApiController serviceRequestsApiController = new ServiceRequestsApiController()) 
      { 
       var getMsg = serviceRequestsApiController.ApproveRequest(Id); 
       if (getMsg == "1") 
        getMsg = "Request Approved"; 
       Response.AddHeader("X-Msg",getMsg); 
       return ServiceRequest(); 
      } 
     } 

在jQuery的功能,我寫了這個

function Successfun(xhr, status) 
    { 
     var x = xhr.getResponseHeader("X-Msg") 
     bootbox.alert(x); 
    } 

,但它顯示xhr.getResponseHeader不是一個函數。

回答

1

我認爲傳遞給您的成功處理程序的第一個參數將是您的操作方法返回的數據,而jQuery xhr包裝將是第三個參數。所以這應該工作:

function Successfun(data, status, xhr) 
{ 
    var x = xhr.getResponseHeader("X-Msg"); 
    bootbox.alert(x); 
} 
+0

沒有。在cosole中仍然會出現同樣的錯誤'xhr.getResponseHeader(「X-Msg」);' – 2015-04-04 20:59:49

+0

哎呀,對不起 - 我想我弄錯了那個命令。我編輯了我的答案 - xhr是第三個參數,而不是第二個參數 – 2015-04-04 21:00:40