2016-07-22 7 views
1

У меня возникла проблема с «C cookF cookie not set». Все, что мне нужно, это то, что внешняя платежная платформа отправляет обновление на сервер django. Локально работает с Почтальон, но в демо-сервер его не работает ...Django: Запрещено (CSRF cookie не установлен.)

Код
# views.py 
from django.views.decorators.csrf import csrf_exempt 
from django.http import JsonResponse 

@csrf_exempt 
def postback(request): 
    print(request.POST) 
    return JsonResponse({'ok': 'hoooh!'}) 

# urls.py 
from django.conf.urls import url 
from billing import views 

urlpatterns = [ 
    url(r'^postback/$', views.postback), 
] 

Ошибка
Forbidden (CSRF cookie not set.): /billing/postback/ 
[21/Jul/2016 10:49:21] "POST /billing/postback/ HTTP/1.1" 403 2682 

Результат обратной передачи на сервер requestb

https://requestb.in/p0rihap0?inspect#t67d6c

Env

  • Python 3.5.1+
  • Джанго 1.10rc1
+0

Вы уверены, что это просьба в нужном месте? Покажите весь основной urls.py, включая отображение биллинга. –

+0

У вас есть 'CSRF_COOKIE_SECURE = True' в ваших настройках? – Rafael

ответ

1

Я нашел решение здесь: Django Rest Framework remove csrf

я использую в некоторых частях системы ФПИ и, возможно, он генерировал ошибку CSRF и игнорируя csrf_exempt декоратора.

Благодарим за помощь!

3

Если вы установили CSRF_COOKIE_SECURE быть True в файле настроек, то куки будут помечены как «безопасный» и, следовательно, потребуется соединение HTTPS.

Именно поэтому вы получаете эту ошибку.

Для получения дополнительной информации here.

Смежные вопросы