PHP - Access-Control-Allow-Origin不起作用

时间:2016-07-07 17:47:50

标签: javascript php html cors

我拥有一个我们称之为www.example.com的网站。我网站的主要部分是两个文件; header.php和index.php。网站代码的上半部分在header.php中,而下半部分在index.php中。我的问题是,我无法在example.com的响应头中显示Access-Control-Allow-Origin属性。
我的代码:
以下是header.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.php中的
  • header("Access-Control-Allow-Origin:*");
  • 仅限于header.php中的
  • header("Access-Control-Allow-Origin:www.example.com");
  • header.php和index.php 中的
  • header("Access-Control-Allow-Origin:*"); header.php和index.php
  • 中的
  • header("Access-Control-Allow-Origin:*", false);


值得一提的是,我目前正在构建的网站将用于编辑我现有的网站(www.example.com)。

1 个答案:

答案 0 :(得分:2)

可能您的静态文件(如图像)不能通过index.php访问(您指的是它们的物理位置)。在这种情况下,可以在HTTP服务器级别设置CORS头。如果它处理.htaccess文件,您只需创建包含以下内容的.htaccess文件:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

在主目录或指定目录中。