Ошибка CORS на React с Django, развернутым на heroku
Я пытался использовать React + Django rest framework
Я развернул API на heroku и настроил settings.py с django-cors-headers,
Мой settings.py:
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',
'rest_framework',
'rest_framework.authtoken',
'rest_framework_simplejwt',
'rest_framework_simplejwt.token_blacklist',
'account',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
но когда я делаю пост запрос с React на localhost, я получаю:
login:1 Access to XMLHttpRequest at 'myapi' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
Мой реактив:
const login = async (email, password) => {
const response = await createSession(email, password);
console.log('login', response.data);
const loggedUser = response;
const token = response.data.access;
localStorage.setItem('user', JSON.stringify(loggedUser));
localStorage.setItem('token', token);
api.defaults.headers.Authorization = Bearer ${token};
setUser(loggedUser);
navigate('/');
};