我拥有一个我们称之为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("Access-Control-Allow-Origin:*");
。header("Access-Control-Allow-Origin:www.example.com");
。header("Access-Control-Allow-Origin:*");
header.php和index.php header("Access-Control-Allow-Origin:*", false);
值得一提的是,我目前正在构建的网站将用于编辑我现有的网站(www.example.com)。
答案 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"
在主目录或指定目录中。