2016-03-03 2 views

ответ

25

Эта ссылка ссылается на ваш вопрос рекомендует использовать django-cors-headers, чьи documentation говорит установить библиотеку

pip install django-cors-headers 

, а затем добавить его в установленных приложений:

INSTALLED_APPS = (
    ... 
    'corsheaders', 
    ... 
) 

Вы также необходимо добавить класс промежуточного программного обеспечения для прослушивания по ответам:

MIDDLEWARE_CLASSES = (
    ... 
    'corsheaders.middleware.CorsMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    ... 
) 

Возможно, вы также захотите просмотреть the configuration section своей документации.

+0

сделать вас знать любой другой способ сделать это, без необходимости устанавливать новую зависимость? Я пытаюсь создать класс промежуточного ПО теперь –

+1

@JulioMarins, почему бы вам написать свою собственную версию, когда она легко доступна и легко устанавливается, с 12 версиями, 21 разработчиком, более 800 звезд и более 100 вилок? – Chris

+0

У вас действительно есть точка, но поскольку единственная необходимость в простом CORS - это заголовок 'Access-Control-Allow-Origin: *' Я не понимаю, зачем загружать все это, я сделаю еще один способ сделать это в ваш ответ, чтобы оба метода были доступны. ссылка: [link (] http: // enable-cors.org/server.html) –

5

Вы можете сделать это с помощью специального промежуточного программного обеспечения, хотя зная, что наилучшим вариантом является проверенный подход к пакету 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 
) 
1
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

читать официальные документы могут решить почти все проблемные

3

В случае кто-то возвращается к этому вопросу и принять решение написать свои собственные промежуточное программное обеспечение, это пример кода для нового стиля промежуточного Джанго -

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 
Смежные вопросы