using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using System.Web.Http; using System.Web.Http.Controllers; namespace Common { public class Cors : DelegatingHandler { protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { HttpResponseMessage response = base.SendAsync(request, cancellationToken).Result; response.Headers.Add("Access-Control-Allow-Origin", "*"); return Task.FromResult<HttpResponseMessage>(response); } } }
首先重写 DelegatingHandler 中的 SendAsync 方法
就这么三行,其目的是给响应头中添加 Access-Control-Allow-Origin:* 这一句话
然后再Global文件中注册这个方法
GlobalConfiguration.Configuration.MessageHandlers.Add(new CorsHandler());
然后这个时候就可以直接用Ajax方法调用我们项目中的各种方法了。
Ajax方法的url 参数一定要写绝对路径。