Wednesday, June 5, 2019

[jQuery] Cross Domain Ajax 跨網域抓取資料(CORS)

之前寫過利用 JSONP 達成跨域抓資料的文章 (連結在此),今天來介紹另一種跨域抓資料的方式 CORS,這個方式也是 W3 推薦的,使用方法很簡單...

前端 JS: (https://aaaa.aaa.com/a.html)
$.ajax({
    url:"https://bbb.bbb.com/b.php", 
    dataType:"json",
    success:function(data){
        console.log(data);
    }
});

後端 PHP: (https://bbb.bbb.com/b.php)
$arr = array('a', 'b', 'c');
header('Access-Control-Allow-Origin: https://aaa.aaa.com');
echo json_encode($arr);

說明:

重點在後端 要在 Header 多一個"Access-Control-Allow-Origin"設定,如果要開放給全世界所有人查詢,可以下

header('Access-Control-Allow-Origin: *');

這邊要強調一下,這個設定只能防君子不能防小人,所以不能依賴它來作為資料安全性防禦措施。
這個 Header 只是後端API用來告訴前端瀏覽器可不可以取得資料,如果有一個駭客不是透過瀏覽器,而是直接打後端API,一樣可以取到資料。

No comments:

Post a Comment