擅长:python、mysql、java
<p>如果您使用<a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API" rel="noreferrer">HTML5 Fetch API</a>作为登录用户发出POST请求并获得<code>Forbidden (CSRF cookie not set.)</code>,可能是因为默认情况下<code>fetch</code>不包含会话cookie,导致Django认为您与加载页面的用户不同。</p>
<p>您可以通过传递选项<code>credentials: 'include'</code>来获取会话令牌:</p>
<pre><code>var csrftoken = getCookie('csrftoken');
var headers = new Headers();
headers.append('X-CSRFToken', csrftoken);
fetch('/api/upload', {
method: 'POST',
body: payload,
headers: headers,
credentials: 'include'
})
</code></pre>