(转)asp.net mvc web api 可跨域方法

1.直接修改 web.config ,不过这是针对所有 Action。

<location path="Sample.txt">
    <system.webServer>
      <httpProtocol>
        <customHeaders>
          <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>
</location>

方法 2.
加入一个类别,内容为以下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System;
using System.Web.Http.Filters;

namespace Workflow.Filters
{
    public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            if (actionExecutedContext.Response != null)
                actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");

            base.OnActionExecuted(actionExecutedContext);
        }
    }
}

最后你在 Controller 或者是 Action 上面加上属性,即可允许跨网域传输数据:

    [AllowCrossSiteJson]
    public class InstancesController : ApiController
    {
        // ......

    }
 
原文地址:https://www.cnblogs.com/richard88/p/4871285.html