Ответ 1
Как описано здесь: Настройка Access-Control-Allow-Origin в ASP.Net MVC - простейший возможный метод
Вы должны просто создать фильтр действий и установить там заголовки. Вы можете использовать этот фильтр действий для своих действий, где бы вы ни захотели.
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
base.OnActionExecuting(filterContext);
}
}
Если вы хотите добавить несколько доменов, вы не можете просто задать заголовок несколько раз. В своем фильтре действий вам нужно будет проверить, является ли запрашивающий домен из вашего списка доменов, а затем установить заголовок.
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var domains = new List<string> {"domain2.com", "domain1.com"};
if (domains.Contains(filterContext.RequestContext.HttpContext.Request.UrlReferrer.Host))
{
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
}
base.OnActionExecuting(filterContext);
}