可以使用jQuery删除HTTP响应头吗?

时间:2013-08-15 10:23:48

标签: c# asp.net-mvc jquery httpresponse

我正在设计一个MVC视图,该视图将使用类似于 how to auto refresh MVC PartialView every second 中描述的技术的方式使用AJAX自动刷新部分视图。

只要客户端启用了javasript,这应该可以正常工作,但我也会谎言支持非javascript客户端的自动刷新(整个页面)。

所以我想使用自定义AutoRefreshAttribute在父操作方法中设置刷新标头:

public class AutoRefreshAttribute : ActionFilterAttribute
{
    public AutoRefreshAttribute(int waitSeconds)
    {
        this.WaitSeconds = waitSeconds;
    }

    public int WaitSeconds { get; set; }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        filterContext.HttpContext.Response.AppendHeader(
            "refresh", 
            this.WaitSeconds.ToString());

        base.OnResultExecuted(filterContext);
    }
}

[AutoRefresh(30)]
public ViewResult Index()
{
    return this.View();
}

然后我想编写一些在加载Index视图后执行的jQuery;这应该删除刷新标头,这样如果客户端启用了javascript,整个页面将不会刷新。然后,我可以使用AJAX自动刷新部分视图。

是否可以使用jQuery删除HTTP响应标头?

1 个答案:

答案 0 :(得分:2)

不,不可能。在处理任何javascript之前很久就已经读取了HTTP标头。