本文透過設定Access-Control-Allow-Origin來實現跨域。例如:客戶端的網域是clilent.php.cn,而要求的網域是server.php.cn。如果直接使用ajax訪問,會有以下錯誤:
XMLHttpRequest cannot load http:/server.php.cn/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.php.cn' is therefore not allowed access.
一、允許單一網域存取
#指定某網域名稱(http://client.php.cn)跨網域訪問,只需在http://server.php.cn/server.php檔案頭新增以下程式碼:
<?php header('Access-Control-Allow-Origin:http://client.php.cn');
#二、允許多個網域存取
指定多個網域(http://client1.php.cn、http://client2.php.cn等)跨網域訪問,則只需在http://server.php.cn/server.php檔案頭新增以下程式碼:
<?php $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://client1.php.cn', 'http://client2.php.cn' );
三、允許所有網域存取
允許所有網域存取則只需在http://server.php.cn/server.php檔案頭新增以下程式碼:
<?php header('Access-Control-Allow-Origin:*');
更多PHP相關知識,請造訪PHP中文網!
以上是PHP跨域問題解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!