【问题标题】:Adding headers in ASP.NET MVC 3在 ASP.NET MVC 3 中添加标头
【发布时间】:2012-06-01 16:53:25
【问题描述】:

我有一个基本的 ASP.NET MVC 3 应用程序。我有一个如下所示的基本操作:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddItem(string id, string name, string description, string username)
{
  // Do stuff
  return Json(new { statusCode = 1 });
}

我试图让某人通过将托管在 Phone Gap 中的 JQuery Mobile 应用程序访问此操作。有人告诉我,我需要在标题中返回 Access-Control-Allow-Origin: *。但是,我不确定如何在标题中返回它。有人可以告诉我怎么做吗?

非常感谢。

【问题讨论】:

    标签: c# asp.net-mvc-3 http-headers


    【解决方案1】:
    Response.AppendHeader("Access-Control-Allow-Origin", "*");
    

    【讨论】:

    • 我遇到了另一个问题:当浏览器执行下一个请求时。它不包括返回服务器的标题“Access-Control-Allow-Origin”。如何让浏览器返回其先前响应的所有标头。
    • @TolaCh。 AFAIK 浏览器没有理由在后续请求中返回所有响应标头。您可以使用 JavaScript getAllResponseHeaderssetRequestHeader 将标头从响应传播到请求。
    【解决方案2】:
        public class HttpHeaderAttribute : ActionFilterAttribute
        {
            /// 
            /// Gets or sets the name of the HTTP Header.
            /// 
            /// The name.
            public string Name { get; set; }
    
            /// 
            /// Gets or sets the value of the HTTP Header.
            /// 
            /// The value.
            public string Value { get; set; }
    
            /// 
            /// Initializes a new instance of the  class.
            /// 
            /// The name.
            /// The value.
            public HttpHeaderAttribute(string name, string value)
            {
                Name = name;
                Value = value;
            }
    
            public override void OnResultExecuted(ResultExecutedContext filterContext)
            {
                filterContext.HttpContext.Response.AppendHeader(Name, Value);
                base.OnResultExecuted(filterContext);
            }
       }    
    

    [HttpHeader("Access-Control-Allow-Origin","*")]
        public ActionResult myaction(int id)
        {
            // ...
        }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-10
    • 2016-12-06
    • 2012-01-20
    • 2011-12-02
    • 1970-01-01
    • 2015-06-12
    • 2013-04-06
    • 1970-01-01
    相关资源
    最近更新 更多