zoukankan      html  css  js  c++  java
  • 在 mvc4 WebApi 中 json 的 跨域访问

    问题:

    SEC7120: 在 Access-Control-Allow-Origin 标头中未找到源

    解决:

    /// <summary>
      /// 允许CrossJson
      /// </summary>
      public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
      {
          public override void OnActionExecuting(HttpActionContext actionContext)
          {
              if (actionContext == null)
              {
                  throw new ArgumentNullException("actionContext");
              }

              //actionContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");

              //HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
              //actionContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
              base.OnActionExecuting(actionContext);
          }

          public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
          {
              if (actionExecutedContext == null)
              {
                  throw new ArgumentNullException("actionExecutedContext");
              }
              Debug.Assert(actionExecutedContext.Response != null, "actionExecutedContext.Response != null");

              Debug.Assert(actionExecutedContext.Response.Headers != null, "actionExecutedContext.Response.Headers != null");
              actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
              base.OnActionExecuted(actionExecutedContext);
          }
      }

    要注意的是 “ActionFilterAttribute” 是  System.Web.Http.Filters 命名空间的中, 不是 Mvc中的。

    public class UserController : ApiController
       {

    [AllowCrossSiteJson]

           public UserInfo Get()
           {
               return new UserInfo
               {
                   UserName = ICasAuthenticator.GetName()
               };
           }

    这样就好了,

    其实Api Controller的代码路径更短了。

  • 相关阅读:
    screenonclick类
    凶残
    接近毁灭的状态
    在python3中,items()进行了优化
    python中两个字典(dict)合并
    Python代码中os.path常见属性的相关介绍 from 路人甲
    什么是pyc文件
    wget
    Python的字典的items(), keys(), values()
    利用securecrt在linux与windows之间传输文件
  • 原文地址:https://www.cnblogs.com/zbw911/p/2920473.html
Copyright © 2011-2022 走看看