1. 程式人生 > >cors跨域資源共享方法

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