using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace WcfControlMonitorWebLib { /// /// 用于处理跨域问题 /// internal class CorsHandler : DelegatingHandler { protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { return base.SendAsync(request, cancellationToken) .ContinueWith((task) => { HttpResponseMessage response = task.Result; response.Headers.Add("Access-Control-Allow-Credentials", "true"); response.Headers.Add("Access-Control-Allow-Headers", "Content-Type,Token"); response.Headers.Add("Access-Control-Allow-Methods", "*"); response.Headers.Add("Access-Control-Allow-Origin", "*"); if (request.Method == HttpMethod.Options) { response.StatusCode = HttpStatusCode.OK; } return response; }); } } }