Почему мне нужны заголовки Cors для одного приложения, но не для другого идентичного приложения?

У меня есть два (почти) одинаковых приложения Angular PWA, которые находятся в обертке ASPNET. Одно размещено на порту 5000, а другое - на 5002.

location /app1/ {
    proxy_pass         http://localhost:5000/;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection keep-alive;
    proxy_set_header   Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
}

location /app2/ {
    proxy_pass         http://localhost:5002/;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection keep-alive;
    proxy_set_header   Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
}

Приложение загружает данные с сервера Django по адресу /home/apps/djangoapp/media/JSON:

### Upload App ###
MEDIA_ROOT = '/home/apps/djangoapp/media'
MEDIA_URL = '/media/'
JSON_URL = 'JSON/'
DATA_UPLOAD_MAX_NUMBER_FIELDS = 100000
CORS_ALLOW_ALL_ORIGINS = True
DATA_UPLOAD_MAX_MEMORY_SIZE = 10242880

Файл создается с помощью пост-запроса и после создания принадлежит www-data, независимо от того, какое приложение создает файл. По какой-то причине я не могу загрузить на app2 (на порт 5002) без передачи Access-Control-Allow-Origin' '*' от NGINX для папки media.

location /media {
    alias /home/apps/djangoapp/media;
    add_header 'Access-Control-Allow-Origin' '*';
}

Похоже, что так делать нельзя, тем более что другому приложению, очевидно, не нужны заголовки cors. И чтобы еще больше усложнить ситуацию, app1 даже не жалуется на наличие заголовков, когда я помещаю их туда для app2.

Из того, что я понимаю о cors origins, подключение с разных портов имеет значение; я просто не понимаю, почему это работает для приложения на порту 5002, а не на порту 5000. Может ли кто-нибудь дать мне некоторое представление об этом и как я могу заставить это работать?

Конечно, спасибо.

Вернуться на верх