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的代码路径更短了。

  • 相关阅读:
    进程池和线程池、协程、TCP单线程实现并发
    GIL全局解释锁,死锁,信号量,event事件,线程queue,TCP服务端实现并发
    进程补充和线程的介绍
    进程的介绍和使用
    异常处理和UDP Socket套接字
    TCP Socket 套接字 和 粘包问题
    网络编程
    面向对象高级——反射和元类
    面向对象三大特性之——多态和一些内置函数
    面向对象-内置方法
  • 原文地址:https://www.cnblogs.com/zbw911/p/2920473.html
Copyright © 2011-2022 走看看