我拥有一个我们称之为 www.example.com 的网站。我网站的主要部分在两个文件中; header.php 和 index.php。网站代码的上半部分在 header.php 中,下半部分在 index.php 中。我的问题是,我无法让 Access-Control-Allow-Origin 属性显示在来自 example.com
的响应 header 中
我的代码:
以下是 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.php 中。header("Access-Control-Allow-Origin:www.example.com");
仅在 header.php 中。header("Access-Control-Allow-Origin:*");
在 header.php 和 index.php 中header("Access-Control-Allow-Origin:*", false);
在 header.php 和 index.php 中
可能值得一提的是,我目前正在 build 的网站将用于编辑我现有的网站 (www.example.com)。
最佳答案
可能您的静态文件(如图像)无法通过 index.php 访问(您指的是它们的物理位置)。在这种情况下,可以在 HTTP 服务器级别设置 CORS header 。如果它处理 .htaccess 文件,您可以简单地创建包含以下内容的 .htaccess
文件:
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
在主目录或指定目录中。
关于javascript - PHP - 访问控制允许来源不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38252063/