Мой сайт Django находится в HTTPS. Когда я пытаюсь передать данные POST на веб-сайт из сценария, я получаю эту ошибку: «проверка референта не выполнена - нет рефератора». Кажется, это проблема CSRF, но я не знаю, как ее решить.Проверка подлинности Jango CSRF не выполняется при запросах POST: проверка референта не удалась - нет Referer
Пример:
import requests
r = requests.post('https://mywebsite/mypage', data = {'key':'value'})
print r.text
дает мне этот выход:
[...]
<p>Reason given for failure:</p>
<pre>
Referer checking failed - no Referer.
</pre>
<p>In general, this can occur when there is a genuine Cross Site Request Forgery, or when
<a
href="https://docs.djangoproject.com/en/1.8/ref/csrf/">Django's
CSRF mechanism</a> has not been used correctly. For POST forms, you need to
ensure:</p>
<ul>
<li>Your browser is accepting cookies.</li>
<li>The view function passes a <code>request</code> to the template's <a
href="https://docs.djangoproject.com/en/dev/topics/templates/#django.template.backends.base.Template.render"><code>render</code></a>
method.</li>
<li>In the template, there is a <code>{% csrf_token
%}</code> template tag inside each POST form that
targets an internal URL.</li>
<li>If you are not using <code>CsrfViewMiddleware</code>, then you must use
<code>csrf_protect</code> on any views that use the <code>csrf_token</code>
template tag, as well as those that accept the POST data.</li>
</ul>
[...]
Мне нужно передать реферер моим заголовки перед отправкой данных POST Do - который не был бы удобен? Или я должен отключить CSRF для этой страницы?
Благодаря
Я также проблема с этой проблемой. Любой ответ Жюльен Салинас? – neelima
@neelima вам нужно отключить проверку CSRF в вашем представлении. Используйте декоратор '@ csrf_exempt': https://docs.djangoproject.com/en/1.11/ref/csrf/#django.views.decorators.csrf.csrf_exempt –