cors跨域资源共享方法

cors是一个服务端和客户端协作声明的方式来确保请求的安全性。

  • 服务端在HTTP请求头增加一些列的请求头信息(例如Access-Control-Allow-Orign等),说明哪些域的请求可以接受,或哪些类型的请求可以接受。
  • 客户端在发起请求时,也必须在请求头中声明自己的源(Orign),否则服务器将不予处理。如果客户端不作声明,请求可能会被浏览器阻止,到不了服务器端。HTTP请求到达服务器之后会与服务端声明的域进行比较,只有同域的请求才做处理。

客户端代码:

//原声js ajax请求
var xhr = new XMLHttpRequest();
xhr.open("post", "http://b.example.com/Test.ashx", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
//关键步骤:***在请求头声明请求源***
xhr.setRequestHeader("Origin", "http://a.example.com");

xhr.onreadystatechange = function () {
   if (xhr.readyState == 4 && xhr.status == 200) {
       var responseText = xhr.responseText;
       console.info(responseText);
   }
}
xhr.send();

服务端代码:

   public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        // 声明接受所有域的请求
        context.Response.AddHeader("Access-Control-Allow-Origin", "*");
        context.Response.Write("Hello World");
    }

   public bool IsReusable
   {
       get
       {
           return false;
       }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值