Проблема CORS в django

settings.py

INSTALLED_APPS = [
    ...
    'corsheaders',
]


MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]


ALLOWED_HOSTS = ['*']
CORS_ORIGIN_ALLOW_ALL = True

ajax запрос

            $.ajax({
                type: "POST",
                url: `https://example.com/requestlink/`,
                crossDomain: true,
                data: {
                    link: link,
                    csrfmiddlewaretoken: csrf,
                },

                success: function (data) {
                    if (data) {
                        data.forEach(src => {
                            createresult(src);
                        })
                    }
                    icon.classList.replace('loading', 'search');
                },
                error: function (data) {
                    icon.classList.replace('loading', 'search');
                }
            })

Теперь, когда я делаю ajax запрос на пост, я получаю следующее во вкладке консоли

Status 403 Forbidden
Version HTTP/1.1
Transferred 1.53 KB (2.50 KB size)
Referrer Policy no-referrer-when-downgrade

и это в бэкенде

Forbidden (Referer checking failed - https:// anotherexample.com / не соответствует ни одному доверенному источнику): /requestlink/

Почему так?

Попробуйте использовать эти параметры вместо этого :

Заменить :

ALLOWED_HOSTS = ['*']
CORS_ORIGIN_ALLOW_ALL = True

By :

CORS_ORIGIN_ALLOW_ALL = False
    CORS_ORIGIN_WHITELIST = (
      'http://localhost:8000',  # The Django app can request now
    )
Вернуться на верх