首页 > 解决方案 > 在 apache 网络服务器上允许带有 .htaccess 文件的 Cors

问题描述

我可以在将文件上传到我的网站的文件夹中使用 .htaccess 文件来允许 cors 吗?我尝试在我的 .htaccess 文件中使用此代码:

Access-Control-Allow-Origin: *

但这不起作用。我必须添加一些东西还是做其他事情?

标签: apachewebserver

解决方案


在您的 .htaccess 文件中添加以下行将解决您的问题。

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

您还可以从 index.php 文件本身解析跨源。因此,您无需在 .htaccess 文件中进行更改。在您的索引文件中尝试以下代码。

// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // should do a check here to match $_SERVER['HTTP_ORIGIN'] to a whitelist of safe domains
    header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 86400');
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");         

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

}

推荐阅读