![](/img/trans.png)
[英]Error handling with POST signals from axios to Django Rest Server
[英]Django session authentication and Axios POST signals
I use Django Rest framework session authentication,after user logged in I can do successful POST request (/api/post/1/like/) using browsable API.
為什么我不能使用 axios 發布? (用戶實例是 Django 服務器必須保存上述 API )
我希望 POST 信號可能不知道登錄用戶,即使我以管理員用戶身份登錄
AXIOS FUNCTION
const likebutton = (id)=>{
axios.post(`/api/post/${id}/like/`)
}
錯誤
Error: Request failed with status code 403
at createError (createError.js:16)
at settle (settle.js:17)
at XMLHttpRequest.handleLoad (xhr.js:61)
從django 文檔中,您可以使用以下腳本獲取csrftoken
:
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
或者,通過使用Javascript Cookie 庫:
var csrftoken = Cookies.get('csrftoken');
然后,您所要做的就是更新您的axios
調用以將其作為 header 發送:
const likebutton = (id) => {
axios.post(`/api/post/${id}/like/`, { headers: { 'X-CSRFToken': csrftoken } })
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.