1. 程式人生 > >ajax跨域之---伺服器端代理實現

ajax跨域之---伺服器端代理實現

介紹一種不是通過js實現跨域的方式: 通過伺服器端代理實現。

具體的思路:由於瀏覽器有同源策略限制,(同源策略即:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy),所以想要跨域訪問其他域下的資源,需要繞開瀏覽器的這個限制,可以在伺服器端設定一個代理,由伺服器端向跨域下的網站發出請求,再將請求結果返回給前端,成功避免同源策略的限制。

具體操作如下:

1、在localhost:81/a.html中,向同源下的某個代理程式發出請求

複製程式碼
$.ajax({
    url:'/proxy.php?name=hello&info=information',   //
伺服器端的代理程式 type:'GET', success:function (){} })
複製程式碼

2、在代理程式proxy.php中,向非同源下的伺服器發出請求,獲得請求結果,將結果返回給前端。

複製程式碼
<?php 

$name=$_GET['name'];
$info = $_GET['info'];
$crossUrl = 'http://b.com/sub?name='.$name;   //向其他域下發出請求
$res = file_get_contents($crossUrl);
echo $res; 


?>

ps:通過這種方式也可以破解部分圖片防盜鏈,因為這種請求不帶referer