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;
});
}
}
}