Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django rest+;axios put请求错误403_Django_Rest_Django Rest Framework_Axios_Webpack Dev Server - Fatal编程技术网

django rest+;axios put请求错误403

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

我看了复制件,似乎什么都没用。我可以直接从url中的表单执行put请求,但我似乎无法让axios请求正常工作

我试过:

my view.py:

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=()
?哦,对不起。您已经在聊天中完成了权限设置。