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
    {
        // ......

    }
posted @ 2015-10-09 15:43  mysuper  阅读(164)  评论(0编辑  收藏  举报