跨域ajax請求,伺服器會收到請求嗎?

weixin_34127717發表於2017-09-26

同源策略 (Same origin policy)

是一種約定,它是瀏覽器最核心也最基本的安全功能,Web是構建在同源策略基礎之上的,瀏覽器是針對同源策略的一種實現。

之前一直認為,它是通過對發出的請求進行檢查是否同源,然後決定是否對該請求加以限制來實現。這次經過驗證發現正好相反:

在www.test.com下的頁面中向www.domian.com下的a.php傳送ajax請求:

    $.ajax({                       
        type:"get",
        url:"http://www.domain.com/a.php",
        async:true,
        success:function(res){
            console.log(res)
        },
        error:function(){
            console.log("error")
        }
    });
    

控制檯資訊顯示跨域不被允許:

 XMLHttpRequest cannot load http://www.domain.com/a.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.test.com' is therefore not allowed access.
 

檢視伺服器access.log記錄,找到了這條請求的記錄:

圖片描述

所以同源策略應該是瀏覽器在接收載入資源之前對其來源進行了檢查,然後限制載入。

相關文章