Конфигурации CORS в Django не работают в производстве

Я работаю над приложением для чата с Django на бэкенде и React на фронтенде. Оба хостятся на отдельных доменах на vercel.

Я добавил конфигурации CORS в back-end, но они, похоже, не работают в production.

Ниже приведены конфигурации CORS, выполненные в Django:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ALLOWED_HOSTS = ['.vercel.app'] 

CORS_ALLOW_CREDENTIALS = True
CORS_ALLOWED_ORIGINS = ['https://texter-frontend.vercel.app',]

Вот один из запросов с фронт-энда:

const backendServerEndpoint = 'https://texter-backend-jp24ejwc8-sourav-pys-projects.vercel.app';
const requestData = {
    'phoneNumber' : phoneNumber
};           

fetch(backendServerEndpoint + '/auth/sendotp/',{
    method: "POST", // *GET, POST, PUT, DELETE, etc.
    mode: "cors", // no-cors, *cors, same-origin
    credentials: 'include',
    headers: {
        "Content-Type": "application/json",        
    },
    body: JSON.stringify(requestData), 
})        
        
.then(
    response => {
        if(response.status === 200){        
            setOtpSent(true);            
            response.json()        
            .then(       
                responseData => {            
                    console.log(responseData);                
                    if(responseData.newProfile){            
                        console.log("It is a new profile!!!");                
                        setNewProfile(true);            
                    }
                }
            )
        }
    } 
)
.catch(
    error => {
        console.log(error);
    }
)

Вот ошибка, которую я получаю в консоли:

Доступ к выборке по адресу 'https://texter-backend-jp24ejwc8-sourav-pys-projects.vercel.app/auth/sendotp/' из источника 'https://texter-frontend.vercel.app' был заблокирован политикой CORS: На запрашиваемом ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'. Если вам нужен непрозрачный ответ, установите режим запроса на 'no-cors', чтобы получить ресурс с отключенным CORS.

P.S.: Когда я развертываю его на своей локалке, заменив URL-адреса vercel на localhost/127.0.0.1, он работает нормально.

https://github.com/sourav-py/texter_backend https://github.com/sourav-py/texter_frontend

Спасибо.

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