Я пытаюсь сохранить данные в форме, используя почтовый метод.Для этого я установил права доступа AllowAny
.Я проверил метод POST с помощью Postman, и он работает, но когда я использую axios для публикации тех же данных, он возвращает ошибку 403.
Я уже пытался использовать исправления, предоставленные в данном описании ссылки, но которые добавляют больше исключений. CSRF с Django, React + Redux с использованием Axios
Описание ошибки, приведенное в консоли
Error: Request failed with status code 403
at createError (createError.js:16)
at settle (settle.js:18)
at XMLHttpRequest.handleLoad (xhr.js:77)
Python django rest framework code
#viewset class from python
class feedbackViewSet(viewsets.ModelViewSet):
queryset = feedback.objects.all()
permission_classes = [
permissions.AllowAny
]
serializer_class = feedbackSerializer
Код Java-скрипта с использованием axios для отправки данных на сервер
//axios post method
export const addFeedback = feedback => dispatch => {
axios
.post("/api/feedbacks/", feedback)
.then(res => {
dispatch({
type: ADD_FEEDBACK,
payload: res.data
});
})
.catch(err => console.log(err));
};
Код формы содержит методы on submit, которые должны быть вызваны.
//form component code
import React, { Component } from "react";
import { connect } from "react-redux";
import PropTypes from "prop-types";
import { addFeedback } from "../../actions/feedbacks";
export class Form extends Component {
state = {
name: "",
email: "",
description: ""
};
static propTypes = {
addFeedback: PropTypes.func.isRequired
};
onChange = e => this.setState({ [e.target.name]: e.target.value });
onSubmit = e => {
e.preventDefault();
const { name, email, description } = this.state;
const feedback = { name, email, description };
this.props.addFeedback(feedback);
};
render() {
const { name, email, description } = this.state;
return (
//some form generation code
);
}
}
export default connect(
null,
{ addFeedback }
)(Form);