javascript - PHP - 访问控制允许来源不工作

标签 javascript php html cors

我拥有一个我们称之为 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/

相关文章:

javascript - 每过一分钟就重新加载页面

javascript - Javascript 窗口打印的设置

PHP 脚本不在本地主机上运行

JavaScript 将数据解析为对象

Javascript 在 HTML 中设置 ID 的值

javascript - 使用 jQuery 根据内容删除 td

javascript - Raphael US SVG map 在值更改时不会重新着色

php - 在没有数据库或用户名的情况下使用 php 密码保护文件夹/页面的最佳方法是什么

php - 我如何断言结果是 PHPUnit 中的电子邮件?

php - style.css 不影响新页面模板