Nginx Запрос кэша заблокирован политикой CORS, когда источник не работает - PullRequest
2 голосов
/ 05 апреля 2020

Мой кеш работает нормально, пока работает Origin Server. Я использую "proxy_cache_use_stale", как показано ниже. Пробовал с разными кодами ошибок и с обновлением, но он не будет показывать кэшированные файлы (они находятся в папке кэша). Я также попробовал различные решения CORS, которые я нашел, но они тоже не работают.

Мой файл .conf:

proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=300d use_temp_path=off;

server {

    listen 80;
    listen [::]:80;

    location / {

    if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' "$http_origin" always;
        add_header 'Access-Control-Allow-Credentials' 'true' always;
        add_header 'Access-Control-Allow-Headers' "Origin, X-Requested-With, Content-Type, Accept" always;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain; charset=utf-8';
        add_header 'Content-Length' 0;
        return 204;
     }

        proxy_cache my_cache;

        proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_403 http_404 http_429;
        proxy_cache_background_update on;
        proxy_cache_lock on;

        proxy_cache_key $host$request_uri|$request_body;
        proxy_cache_valid 200 302 301 800d;
        proxy_ignore_headers Cache-Control;
        proxy_cache_methods GET HEAD POST;

        proxy_pass example.com;
        add_header X-Cache-Status $upstream_cache_status;
   }
}

Ошибка:

Access to XMLHttpRequest at 'http://example.com' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

1 Ответ

0 голосов
/ 12 апреля 2020

Проблема решена. С CORS проблем не было, проблема была в json.

...