2012-05-26 11 views
13

私は基本的なASP.NET MVC 3アプリを持っています。私は誰かが電話でのギャップでホストされるjQueryのモバイルアプリを経由して、このアクションにアクセスできるようにしようとしています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 }); 
} 

:私は、次のような基本的な作用を有します。私はAccess-Control-Allow-Origin: *を私のヘッダーに返す必要があると言われました。しかし、私はヘッダーにそれを返す方法がわかりません。誰かが私にそれをする方法を教えてもらえますか?

ありがとうございました。

答えて

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

私は別の問題だ:ブラウザは次の要求を実行するとき を。 「Access-Control-Allow-Origin」ヘッダーはサーバーに戻されません。 ブラウザーですべてのヘッダーを以前の応答から戻す方法。 –

+0

@TolaCh。 AFAIKでは、後続のリクエストでブラウザがすべての応答ヘッダーを返す必要はありません。 JavaScript [getAllResponseHeaders](http://help.dottoro.com/ljnxxhwv.php)と[setRequestHeader](http://help.dottoro.com/ljhcrlbv.php)を使用して、応答のヘッダーを要求。 – 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

現在のリンク:http://blog.gregbrant.com/post/Adding-Custom-HTTP-Headers-to-an-ASPNET-MVC-Response –

+0

リンクが機能しない –

関連する問題