php AJAX 获取文件- CORS问题&设置缓存?

v8wbuo2f  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(79)

我试图从另一个服务器获取一个json文件:

fetch('https://site.test/data.json',
    {
        method: "GET",
    })
    .then(function (res) {
        return res.json();
    })
    .then(function (data) {
        console.log(data);
    });

如果我直接获取,我会收到CORS问题。
如果我通过PHP获取,我没有CORS问题,但我没有得到文件本身,所以它不能被缓存。

header('Access-Control-Allow-Origin: *');
echo file_get_contents("data.json");

有没有可能以某种方式返回文件本身,并在php中设置缓存头?

mfuanj7w

mfuanj7w1#

在apache主机上,您可以简单地将.htaccess文件放在JSON文件所在的同一目录(或任何父目录)中,并添加以下内容:

<FilesMatch "\.(json)$">
    Header add Access-Control-Allow-Origin "*"
</FilesMatch>

这将为所有.json文件的请求设置适当的头。您还可以根据需要指定允许的方法和头。

<FilesMatch "\.(json)$">
    Header add Access-Control-Allow-Origin "*"
    Header add Access-Control-Allow-Methods "GET,PUT,POST,DELETE"
    Header add Access-Control-Allow-Headers "Content-Type, Authorization"
</FilesMatch>

相关问题