PHP Ajax跨域問題解決辦法


在項目開發中,經常會遇到跨域訪問資源,上傳圖片等,那么這些都怎么解決呢,下面簡單介紹一下ajax請求時,解決跨域問題。

原文地址:小時刻個人博客 > http://small.aiweimeng.top/index.php/archives/29.html

 

有時我們在請求數據接口時,會看到控制台中出現如下錯誤信息:

XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested 
resource.Origin 'http://client.runoob.com' is therefore not allowed access.

這句話意思說不能請求到資源;
如果客戶端請求其他服務器的資源時我們設置一下跨域;下面演示設置:

1.用php的方法在腳本中添加如下代碼:

//允許單個域名訪問
header("Access-Control-Allow-Origin:http://www.yourdomain.com");

//或者下面這種,允許多個域名訪問
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
$allow_origin = array(
    'http://www.yourdomain1.com',  
    'http://www.yourdomain2.com'
);
if(in_array($origin, $allow_origin))
{  
    header('Access-Control-Allow-Origin:'.$origin);       
}

//或者下面這種,允許所有可訪問
header("Access-Control-Allow-Origin:*");

2.通過修改apache配置文件
首先編輯httpd.conf
找到 #LoadModule headers_module modules/mod_headers.so
去掉前面的 #
然后在獨立資源域名的虛擬主機添加一行:

Header set Access-Control-Allow-Origin *
#意思是對這個域名的資源進行訪問時,添加一個頭信息

重啟apache,再用ajax請求的時候就不會出現報錯了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM