PHPAjax跨域問題解決方案

速貸100發表於2017-03-06

本文通過設定Access-Control-Allow-Origin來實現跨域。

例如:客戶端的域名是client.0751.tv,而請求的域名是server.0751.tv。

如果直接使用ajax訪問,會有以下錯誤:

  1. XMLHttpRequest cannot load http://server.0751.tv/server.php. No `Access-Control-Allow-Origin` header is present on the requested resource.Origin `http://client.0751.tv` is therefore not allowed access.
複製

1、允許單個域名訪問

指定某域名(http://client.0751.tv)跨域訪問,則只需在http://server.0751.tv/server.php檔案頭部新增如下程式碼:

  1. header(`Access-Control-Allow-Origin:http://client.0751.tv`);
複製

2、允許多個域名訪問

指定多個域名(http://client1.0751.tv、http://client2.0751.tv等)跨域訪問,則只需在http://server.0751.tv/server.php檔案頭部新增如下程式碼:

  1. $origin = isset($_SERVER[`HTTP_ORIGIN`])? $_SERVER[`HTTP_ORIGIN`] : ;
  2. $allow_origin = array(
  3. `http://client1.0751.tv`,
  4. `http://client2.0751.tv`
  5. );
  6. if(in_array($origin, $allow_origin)){
  7. header(`Access-Control-Allow-Origin:`.$origin);
  8. }
複製

3、允許所有域名訪問

允許所有域名訪問則只需在http://server.0751.tv/server.php檔案頭部新增如下程式碼:

 

  1. header(`Access-Control-Allow-Origin:*`);
複製


相關文章