13

I have a basic ASP.NET MVC 3 app. I have a basic action that looks like the following:

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

I am trying to let someone access this action via a JQuery Mobile app that will be hosted in Phone Gap. I was told that I need to return Access-Control-Allow-Origin: * in my header. However, I'm not sure how to return that in the header. Can someone please show me how to do that?

Thank you so much.

2 Answers 2

31
    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)
    {
        // ...
    }
Sign up to request clarification or add additional context in comments.

1 Comment

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

2 Comments

I got another problem: when Browser perform next request. it does not not include the header "Access-Control-Allow-Origin" back to server. How to make browser return all headers from its prior response.
@TolaCh. AFAIK there is no reason that a browser should return all response headers in subsequent requests. You could use JavaScript getAllResponseHeaders and setRequestHeader to propagate the headers from a response to a request.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.