Как включить CORS в моей платформе Django REST? reference не помогает, он говорит, что я могу сделать с помощью промежуточного программного обеспечения, но как я могу это сделать?Как включить CORS в Django REST Framework
ответ
Эта ссылка ссылается на ваш вопрос рекомендует использовать django-cors-headers
, чьи documentation говорит установить библиотеку
pip install django-cors-headers
, а затем добавить его в установленных приложений:
INSTALLED_APPS = ( ... 'corsheaders', ... )
Вы также необходимо добавить класс промежуточного программного обеспечения для прослушивания по ответам:
MIDDLEWARE_CLASSES = ( ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ... )
Возможно, вы также захотите просмотреть the configuration section своей документации.
Вы можете сделать это с помощью специального промежуточного программного обеспечения, хотя зная, что наилучшим вариантом является проверенный подход к пакету django-cors-headers
. С учетом сказанного, вот решение:
создать следующую структуру и файлы:
- myapp/middleware/__init__.py
from corsMiddleware import corsMiddleware
- myapp/middleware/corsMiddleware.py
class corsMiddleware(object):
def process_response(self, req, resp):
resp["Access-Control-Allow-Origin"] = "*"
return resp
добавить к settings.py
обозначенная строка:
MIDDLEWARE_CLASSES = (
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
# Now we add here our custom middleware
'app_name.middleware.corsMiddleware' <---- this line
)
pip install django-cors-headers
, а затем добавить его в установленных приложений:
INSTALLED_APPS = (
...
'corsheaders',
...
)
Вам также нужно добавить класс промежуточного слоя для прослушивания на ответах:
MIDDLEWARE_CLASSES = (
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
)
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
'localhost:3030',
)
CORS_ORIGIN_REGEX_WHITELIST = (
'localhost:3030',
)
более детально : https://github.com/ottoyiu/django-cors-headers/#configuration
читать официальные документы могут решить почти все проблемные
В случае кто-то возвращается к этому вопросу и принять решение написать свои собственные промежуточное программное обеспечение, это пример кода для нового стиля промежуточного Джанго -
class CORSMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response["Access-Control-Allow-Origin"] = "*"
return response
- 1. Как включить ForeignKey в django-rest-framework POST
- 2. Как включить связанный ресурс с Django Rest Framework JSON API?
- 3. Как включить @cache_page для некоторых взглядов Django Rest Framework?
- 4. Включить посредника (через модель) в ответы в Django Rest Framework
- 5. Django REST Framework + Django REST Swagger + ImageField
- 6. Django Rest Framework permission_class
- 7. angucomplete + django-rest-framework
- 8. Включить все поля в HyperLinkedModelSerializer Django Rest Framework
- 9. Django Rest Framework автономный?
- 10. Django jQuery Rest Framework
- 11. Django REST Framework Login
- 12. тестирование Django REST Framework
- 13. Использование Django Rest Framework
- 14. Django rest-framework
- 15. Django rest framework api
- 16. Django Rest Framework Локализация
- 17. Django REST Framework Фильтрация
- 18. Django Rest Framework + JWT
- 19. DJango rest framework createapiview
- 20. Django Rest Framework ImageField
- 21. django_countries в django rest framework
- 22. Django Rest Framework - взаимосвязанные сериализаторы
- 23. Формы в Django Rest Framework
- 24. Django, Django-Angular и Django Rest Framework
- 25. Django REST framework без модели
- 26. Как настроить API в django-rest-framework?
- 27. Как обновить HyperlinkedRelatedField в Django Rest Framework
- 28. Как настроить raw_id_fields в django-rest-framework?
- 29. Django Rest Framework: как добавить в массив
- 30. Как использовать гиперссылку в Django Rest Framework?
сделать вас знать любой другой способ сделать это, без необходимости устанавливать новую зависимость? Я пытаюсь создать класс промежуточного ПО теперь –
@JulioMarins, почему бы вам написать свою собственную версию, когда она легко доступна и легко устанавливается, с 12 версиями, 21 разработчиком, более 800 звезд и более 100 вилок? – Chris
У вас действительно есть точка, но поскольку единственная необходимость в простом CORS - это заголовок 'Access-Control-Allow-Origin: *' Я не понимаю, зачем загружать все это, я сделаю еще один способ сделать это в ваш ответ, чтобы оба метода были доступны. ссылка: [link (] http: // enable-cors.org/server.html) –