private void CorsCheck() { // 通常情况下,没有必要限制跨域, // 如果是希望确保安全调用,可以增加参数检查,单纯检查请求头可能没有意义 // 所以,在ClownFish.Mvc中,默认是允许跨域,会自动应答。 string origin = this.HttpContext.Request.Headers["Origin"]; if (string.IsNullOrEmpty(origin)) { return; } EventHandler <CorsCheckEventArgs> eventHandler = this.OnCorsCheck; if (eventHandler != null) { CorsCheckEventArgs e = new CorsCheckEventArgs { Origin = origin, HttpContext = this.HttpContext, ActionMethod = this.InvokeInfo.Action.MethodInfo }; // 如果希望限制跨域来源,可以在事件中检查,并将 e.IsForbidden 设置为 true eventHandler(this, e); if (e.IsForbidden) { return; } } this.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", origin); this.HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "*"); this.HttpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true"); }
private void CorsCheck() { // 通常情况下,没有必要限制跨域, // 如果是希望确保安全调用,可以增加参数检查,单纯检查请求头可能没有意义 // 所以,在ClownFish.Mvc中,默认是允许跨域,会自动应答。 string origin = this.HttpContext.Request.Headers["Origin"]; if( string.IsNullOrEmpty(origin) ) return; EventHandler<CorsCheckEventArgs> eventHandler = this.OnCorsCheck; if( eventHandler != null ) { CorsCheckEventArgs e = new CorsCheckEventArgs { Origin = origin, HttpContext = this.HttpContext, ActionMethod = this.InvokeInfo.Action.MethodInfo }; // 如果希望限制跨域来源,可以在事件中检查,并将 e.IsForbidden 设置为 true eventHandler(this, e); if( e.IsForbidden ) return; } this.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", origin); this.HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "*"); this.HttpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true"); }