django-cors-headers не работают

django-cors-headers не работают

INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.gis', 'corsheaders', 'rest_framework', 'world', 'userManager', 'markPost', 'BasicServices', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = True 

Все нормально, но не работает

здесь мои заголовки ответов

 Cache-Control: max-age=0 Content-Type: text/html; charset=utf-8 Date: Tue, 20 Jan 2015 13:16:17 GMT Expires: Tue, 20 Jan 2015 13:16:17 GMT Last-Modified: Tue, 20 Jan 2015 13:16:17 GMT Server: WSGIServer/0.1 Python/2.7.8 Set-Cookie: csrftoken=snXksqpljbCLW0eZ0EElFxKbiUkYIvK0; expires=Tue, 19-Jan-2016 13:16:17 GMT; Max-Age=31449600; Path=/ Vary: Cookie X-Frame-Options: SAMEORIGIN 

    3 Solutions collect form web for “django-cors-headers не работают”

    В соответствии с кодом process_response от CorsMiddleware :

     response[ACCESS_CONTROL_ALLOW_ORIGIN] = "*" if ( settings.CORS_ORIGIN_ALLOW_ALL and not settings.CORS_ALLOW_CREDENTIALS) else origin 

    Вы должны установить такие настройки:

     # CORS Config CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = False 

    Я думаю, что corsheaders и clickjacking middlewares несовместимы. По крайней мере, я избавился от заголовка X-Frame-Options, когда я прокомментировал django.middleware.clickjacking.XFrameOptionsMiddleware .

    У меня только CORS_ORIGIN_ALLOW_ALL = True настройка.

    Если вы тестируете это, вам необходимо обеспечить включение в запрос заголовка Origin.

    Например:

     $ http GET http://127.0.0.1:8000/todos/ Origin:http://www.someorigin.com HTTP/1.0 200 OK Access-Control-Allow-Origin: * Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Date: Sat, 14 Nov 2015 04:42:38 GMT Server: WSGIServer/0.1 Python/2.7.10 Vary: Accept, Cookie X-Frame-Options: SAMEORIGIN 

    Вы получите больше отзывов с предполетным запросом CORS:

     $ http OPTIONS http://127.0.0.1:8000/todos/ Origin:http://www.someorigin.com HTTP/1.0 200 OK Access-Control-Allow-Headers: x-requested-with, content-type, accept, origin, authorization, x-csrftoken, user-agent, accept-encoding Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS Access-Control-Allow-Origin: * Access-Control-Max-Age: 86400 Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Date: Sat, 14 Nov 2015 04:45:37 GMT Server: WSGIServer/0.1 Python/2.7.10 Vary: Accept, Cookie X-Frame-Options: SAMEORIGIN 
    Python - лучший язык программирования в мире.