1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <h1>Index</h1> 9 <input type="button" onclick="JqAjax();" value="江西tv-list"> 10 <div id="container"></div> 11 <script src="/static/jquery-2.1.4.min.js"></script> 12 <script> 13 function JqAjax() { 14 $.ajax({ 15 url:'http://www.jxntv.cn/data/jmd-jxtv2.html', 16 type:'GET', 17 dataType:'jsonp', 18 jsonp: 'callback', 19 jsonpCallback: 'list', 20 success: function (param) { 21 $.each(param.data,function (i) { 22 var item = param.data[i]; 23 var str = "<p>"+ item.week +"</p>"; 24 var bq = $('#container'); 25 bq.append(str); 26 $.each(item.list,function(j){ 27 var temp = "<span>"+item.list[j].time+"----</span><a href='" + item.list[j].link +"'>" + item.list[j].name +" </a><br/>"; 28 bq.append(temp); 29 }); 30 bq.append("<hr/>"); 31 }) 32 } 33 }) 34 } 35 </script> 36 </body> 37 </html>
經過在HTTP Header中加入擴展字段,服務器在相應網頁頭部加入字段表示容許訪問的domain和HTTP method,客戶端檢查本身的域是否在容許列表中,決定是否處理響應。CORS協議提高了Ajax的跨域能力,但也增長了風險。一旦網站被注入腳本或XSS攻擊,將很是方便的獲取用戶信息並悄悄傳遞出去。
假設咱們頁面或者應用已在 http://www.test1.com 上了,而咱們打算從 http://www.test2.com 請求提取數據。通常狀況下,若是咱們直接使用 AJAX 來請求將會失敗,瀏覽器也會返回「源不匹配」的錯誤。
利用 CORS,在 http://www.test2.com 上只需添加一個標頭,就能夠容許來自 http://www.test1.com 的請求,下圖是我在PHP中的 hander() 設置,「*」號表示容許任何域向咱們的服務端提交請求:
header('Access-Control-Allow-Origin:*');
也能夠設置指定的域名,如域名 http://www.test2.com ,那麼就容許來自這個域名的請求:
header('Access-Control-Allow-Origin:http://www.test2.com'); php