Django Rest Framework статический файл блокируется CORS
Может ли кто-нибудь помочь мне, потому что я не могу ничего сделать с CORS.
У меня есть DRF сервер с установленным corsheaders. Настройки следующие
INSTALLED_APPS = [
...
'corsheaders',
'django.contrib.staticfiles',
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_HEADERS = ('Access-Control-Allow-Origin', 'Access-Control-Allow-Credentials', 'Authorization', 'Content-Type', 'Cache-Control', 'X-Requested-With', 'x-csrftoken')
STATIC_URL = 'static/'
Что я пытаюсь сделать - получить изображение с сервера, чтобы обрезать его в React. Я получаю имя изображения в ответе сервера, показываю его на странице без проблем, но когда я пытаюсь получить его следующим образом:
let img = new Image();
img.crossOrigin = 'Anonymous';
img.src = "http://127.0.0.1:8000/static/images/" + props.image.picname;
setImage(img);
Я получаю ошибку, что доступ к изображению заблокирован. Я пытался запустить сервер как python manage.py runserver --nostatic
и модифицировать urls.py
такими строками:
if settings.DEBUG:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
Но это не помогло. Как мне с этим справиться, ведь у меня нет запроса к изображению, я просто открываю его. Почему показ изображения на странице - это нормально для CORS, а попытка получить его с помощью JS с той же страницы - это такая большая проблема?