首頁  >  文章  >  後端開發  >  php如何破解禁止跨域訪問

php如何破解禁止跨域訪問

(*-*)浩
(*-*)浩原創
2019-09-20 09:43:063875瀏覽

跨域是指從一個網域的網頁去要求另一個網域的資源。例如從www.baidu.com 頁面去請求 www.google.com 的資源。跨域的嚴格一點的定義是:只要協議,域名,端口有任何一個的不同,就被當作是跨域。

php如何破解禁止跨域訪問

如果一個網頁可以隨意地存取另一個網站的資源,那麼就有可能在客戶完全不知情的情況下出現安全性問題,所以預設是不允許跨域存取。

加上需要允許跨網域存取配置,如下所示(一下配置內容前不允許有其他任何輸出操作):(建議學習:PHP編程從入門到精通

//设置允许跨域的 请求源地址
//方式一:
header("Access-Control-Allow-Origin: *");//允许所有地址跨域请求
//方式二:
header("Access-Control-Allow-Origin: http://localhost:8080");//指定某个地址可以跨域请求,这里只能指定一个
//方式三:如果要允许多个地址跨域请求可以这样写
$origin = ['http://localhost:8080','http://localhost:8081'];
$AllowOrigin = 'http://localhost:8080';
if(in_array($_SERVER["HTTP_ORIGIN"],$origin))
{
    $AllowOrigin = $_SERVER["HTTP_ORIGIN"];
}
header("Access-Control-Allow-Origin: ".$AllowOrigin );
---------------------------------------------------------------------------------
//设置允许的请求方法,可以用*表示所有,
header("Access-Control-Allow-Methods: POST");
---------------------------------------------------------------------------------
//如果允许请求携带cookie,此时 origin配置不能用 *,此时前端似乎也要做配置,让请求中携带cookie
header('Access-Control-Allow-Credentials:true');
---------------------------------------------------------------------------------
//设置允许跨域的请求头,通常会在请求头里面加登录验证信息,那么服务端需要指定允许那些请求头,这里不能用*,多个字段用逗号隔开。
header('Access-Control-Allow-Headers:token');

以上是php如何破解禁止跨域訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn