ajax跨域通过 Cors跨域资源共享 进行GetPost请求

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 参数一定要写绝对路径。

 

posted @ 2016-08-01 17:10  乔安生  阅读(454)  评论(0编辑  收藏  举报