django rest+;axios put请求错误403
我看了复制件,似乎什么都没用。我可以直接从url中的表单执行put请求,但我似乎无法让axios请求正常工作 我试过: my view.py:django rest+;axios put请求错误403,django,rest,django-rest-framework,axios,webpack-dev-server,Django,Rest,Django Rest Framework,Axios,Webpack Dev Server,我看了复制件,似乎什么都没用。我可以直接从url中的表单执行put请求,但我似乎无法让axios请求正常工作 我试过: my view.py: class FrequencyList(generics.ListCreateAPIView): queryset = Frequency.objects.all() serializer_class = FrequencySerializer class FrequencyDetail(generics.RetrieveUpda
class FrequencyList(generics.ListCreateAPIView):
queryset = Frequency.objects.all()
serializer_class = FrequencySerializer
class FrequencyDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Frequency.objects.all()
serializer_class = FrequencySerializer
我的axios请求:
axios({
method: 'put',
url: '/f/'+id,
data: {
item: item,
},
}).then(function (response) {
this.setState({needReceipt: true});
})
.catch(function (error) {
console.log(error);
});
在my settings.py中:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
}
在我的webpack.config.dev.js中:
const axios = require('axios');
axios.defaults.xsrfHeaderName = "X-CSRFToken";
axios.defaults.xsrfCookieName = "csrftoken";
试试这个
axios.put('/f/'+id, { item: item })
.then(function(response){
this.setState({needReceipt: true});
});
403(禁止)对不起,它的axios.put不是axios.post。更新了我的答案。检查django控制台中的url,确保它与
/f/123
一样命中相同的url,并放置方法和响应。如果仍然面对403,那么将permission\u classes=(AllowAny,)
添加到类(FrequencyDetail)中。我已经尝试了上面所有的建议,但仍然得到了错误。错误如下:PUT 403(禁止)我可以实际转到url并手动输入PUT,因此我知道id是正确的。因此PUT请求工作正常,axios.PUT请求失败,这就是问题所在。你是如何通过邮递员提出成功的投递请求的。如果是,请检查标头。如果没有标头,则删除X-CSRFToken标记和其他标头。让我们在您的API
类中。您是否尝试过重写权限\u classes=()
?哦,对不起。您已经在聊天中完成了权限设置。