在mvc中通过ajax actionlink获取成功的响应标头

时间:2015-04-04 20:50:47

标签: javascript jquery asp.net ajax asp.net-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 个答案:

答案 0 :(得分:1)

我认为传递给您的成功处理程序的第一个参数将是您的操作方法返回的数据,而jQuery xhr包装器将是第三个​​参数。所以这应该有效:

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