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

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

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

  1. fetch('https://site.test/data.json',
  2. {
  3. method: "GET",
  4. })
  5. .then(function (res) {
  6. return res.json();
  7. })
  8. .then(function (data) {
  9. console.log(data);
  10. });

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

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

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

mfuanj7w

mfuanj7w1#

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

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

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

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

相关问题