2012-05-26 11 views
13

Mam podstawową aplikację ASP.NET MVC 3. Mam podstawowe działania, który wygląda tak:Dodawanie nagłówków w 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 }); 
} 

staram się pozwolić komuś dostęp do tej czynności za pośrednictwem aplikacji mobilnych, które JQuery będzie gospodarzem Telefony Gap. Powiedziano mi, że muszę zwrócić w nagłówku Access-Control-Allow-Origin: *. Jednak nie jestem pewien, jak zwrócić to w nagłówku. Czy ktoś może mi pokazać, jak to zrobić?

Dziękuję bardzo.

Odpowiedz

25
Response.AppendHeader("Access-Control-Allow-Origin", "*"); 
+0

mam inny problem: gdy przeglądarka wykonać następny wniosek. nie zawiera nagłówka "Access-Control-Allow-Origin" z powrotem na serwer. Jak sprawić, aby przeglądarka zwróciła wszystkie nagłówki z wcześniejszej odpowiedzi. –

+0

@TolaCh. AFAIK nie ma powodu, że przeglądarka powinna zwracać wszystkie nagłówki odpowiedzi w kolejnych żądaniach. Możesz użyć JavaScript [getAllResponseHeaders] (http://help.dottoro.com/ljnxxhwv.php) i [setRequestHeader] (http://help.dottoro.com/ljhcrlbv.php), aby propagować nagłówki z odpowiedzi do żądanie. – HABO

29
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) 
    { 
     // ... 
    } 
+0

Bieżący link: http://blog.gregbrant.com/post/Dodanie-Custom-HTTP-Headers-to-an-ASPNET-MVC-Response –

+0

Linki nie działają –

Powiązane problemy