2016-07-07 57 views
0

我擁有一個我們稱之爲www.example.com的網站。我網站的主要部分是兩個文件; header.php和index.php。網站代碼的上半部分在header.php中,而下半部分在index.php中。我的問題是,我無法獲得訪問控制允許來源屬性從響應頭露面example.com

我的代碼:
以下是header.php文件的簡化版本:PHP - 訪問控制 - 允許來源不起作用

<?php 
header("Access-Control-Allow-Origin:*", false); 
... 
additional code here 
... 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <title>My Site</title> 
    </head> 
    <body> 
     .... 
     top half of site code 
     .... 

以下是index.php文件的簡化版本:

<?php 
header("Access-Control-Allow-Origin:*", false); 
include ("header.php"); 
?> 
     .... 
     bottom half of site code 
     .... 
    </body> 
</html> 

這裏是我的要求來檢索圖片:

$.ajax({ 
      type: "GET", 
      url : folder, 
      success: function (data) { 
       if($(".img").length){ 
        $(".img").remove(); 
       } 

       $(data).find("a").attr("href", function (i, val) { 
        if(val.match(/\.(jpe?g|png|gif)$/)) { 
         $("#img-lib").append("<img class='img' src='"+ folder + val +"'>"); 
        } 
       }); 
      }, 
      error: function() { 
       $("#er").remove(); 
       $("#img-lib").append("<p id='er'>There was an error retrieving the images</p>"); 
      } 
}); 



我的錯誤:這是我所得到的,當我嘗試訪問www.example.com/Section/images/:
http://i.stack.imgur.com/29t8n.jpg


我已經嘗試:
(以下代碼片段是php代碼的第一行)

  • header("Access-Control-Allow-Origin:*");僅在header.php中。
  • header("Access-Control-Allow-Origin:www.example.com");只在header.php中。
  • 在header.php文件,index.php文件header.php文件,index.php文件
  • header("Access-Control-Allow-Origin:*", false);
  • header("Access-Control-Allow-Origin:*");


它可能是值得一提的是我目前正在建設的網站將被用來編輯我現有的網站(www.example.com)。

+0

它是否適用於*?你是否強制刷新頁面? –

+0

@DanielKucal它不適用於*。我刷新了我正在構建的頁面和example.com,但仍然無法工作。 – Sneakyp33t

+0

我無法重現該問題 - https://www.evernote.com/l/AANksxHmPBlG4qXVPoY3b-ZUH4Dz6kXo9Xo - 可能你有一些其他的代碼之前的頭語句導致錯誤被拋出,可能你犯了一個錯誤部署。 – Quentin

回答

1

可能你的靜態文件,如圖像,不能通過index.php訪問(你指的是它們的物理位置)。在這種情況下,可以在HTTP服務器級別設置CORS頭文件。如果它處理.htaccess文件,你可以簡單地創建.htaccess文件,其中包含以下內容:

Header add Access-Control-Allow-Origin "*" 
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT" 
主或指定目錄

+0

'的https:// www.example.com /科/圖片/'看起來並不像URL靜態文件。 – Quentin

+0

不能排除選項。在其他情況下,它可以是動態的,但不會通過index.php文件。 –

+1

@DanielKucal我覺得傻昨日俯瞰這個答案,但是這並獲得成功。有一件事我會建議,爲別人運行的Apache服務器,按照本文http://enable-cors.org/server_apache.html添加訪問控制允許來源屬性配置文件。 – Sneakyp33t