2013-10-04 2 views
1

У меня есть 403 FORBIDDEN Ошибка в agon-ratings плагин при отправке рейтинга. Я прочитал doc. Но токен csrf существует в заголовке:403 ЗАПРЕЩЕНА в django agon-рейтинг

Request Headersview source 
Accept */* 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.5 
Cache-Control no-cache 
Connection keep-alive 
Content-Length 22 
Content-Type application/x-www-form-urlencoded; charset=UTF-8 
Cookie csrftoken=6C7zHmrBufWbiYeTXwRkCWC9hDfdxGoW; sessionid=4d6b6977721fcb97f6903d0aaab5e632 
Host localhost:8000 
Pragma no-cache 
Referer http://localhost:8000/news/40/asdas/ 
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0) Gecko/20100101 Firefox/23.0 
X-Requested-With XMLHttpRequest 

Любая помощь по этому вопросу будет оценена по достоинству. Заранее спасибо

ответ

1

Я думаю, вы делаете сообщение через запрос ajax, если это правильно, чем вам нужно отправить токен csrf как часть данных POST или через заголовок X-CSRFToken.

Я не вижу ничего в заголовке запроса, который вы опубликовали.

Django документы вы связаны есть рабочий пример о том, как это сделать (и если вы используете JQuery его основном скопировать и вставить работу)

+0

Я пробовал это раньше .... Большое спасибо. – TheNone

+0

все еще ваш запрос не показывает заголовок или данные csrf; возможно, вы можете опубликовать соответствующий код js у вас есть –

+0

сейчас: X-CSRFToken \t 6C7zHmrBufWbiYeTXwRkCWC9hDfdxGoW, но все же «запрещено» – TheNone

0

Вы используете метод POST. И с методом POST вам нужно написать {% csrf_token%} в HTML внутри элемента формы или передать csrftoken в ajax-запросе i.e https://docs.djangoproject.com/en/dev/ref/contrib/csrf/.

Это обязательное условие, когда вы пишете CSRFMiddleware и процессор csrf в своих настройках django.

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