JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。通常来说,跨域分为以下几类:
跨域调用(mvc、webapi)
先创建两个项目,一个mvc,一个webapi,演示由mvc调用webapi
mvc前端:
跨域调用(mvc、webapi)
会出现问题跨域调用(mvc、webapi)
然后新建一个类在webapi根目录下,这个类创建特性[CrossSite],放在需要跨域的方法前,方法就可跨域
using System.Web;
using System.Web.Http.Filters;
using System.Web.Mvc;

namespace APIApplication
{
    public class CrossSiteAttribute : System.Web.Http.Filters.ActionFilterAttribute
    {
        private const string Origin = "Origin";
        /// <summary>
        /// Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,用来解决资源(比如字体)的跨域权限问题。
        /// </summary>
        private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin" ;
        /// <summary>
        ///  originHeaderdefault的值可以使 URL 或 *,如果是 URL 则只会允许来自该 URL 的请求,* 则允许任何域的请求
        /// </summary>
        private const string originHeaderdefault = "*" ;
        /// <summary>
        /// 该方法允许api支持跨域调用
        /// </summary>
        /// <param name="actionExecutedContext"> 初始化 System.Web.Http.Filters.HttpActionExecutedContext 类的新实例。</param>
        public override void OnActionExecuted( HttpActionExecutedContext actionExecutedContext)
        {
            actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault);
        }
    }
}
View Code

相关文章:

  • 2021-10-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-31
猜你喜欢
  • 2022-12-23
  • 2021-12-17
  • 2021-12-08
  • 2022-12-23
  • 2021-12-31
  • 2021-05-27
  • 2022-01-18
相关资源
相似解决方案