У меня небольшая проблема, я должен написать много кода и объяснить, чтобы все могли понять, я сделаю это с фотографиями. У меня вообще проблема в том, что я получаю ошибку 400, которая является клиентомбоковая ошибка, я понял, что отправил неверный запрос, поэтому давайте начнем с написания некоторого кода.
У меня есть данные для отправки с использованием Redux Action и saga. Вот мой первый исключенный метод, который работает при щелчке по событию, всепока все в порядке:
addNote = () => {
let noteAdded = this.state.noteWritten;
let noteToPush = {
contratId: "120120122",
texte: noteAdded,
dateAjout: "02/12/1994 19:54",
login: "Someone"
};
this.props.addNoteContrat(40000, { texte: noteToPush.texte });
};
Как вы можете видеть, я посылаю Id с объектом (имеет текст внутри), используя метод addNoteContrat, мне пришлось отправить его таким образом, потому что моя работа с бэкэндом уже выполнена иработает нормально.мои импорта тоже в порядке.
У меня есть файл с именем actions, где я создаю свои действия:
export const addNoteContrat = (idContrat, note, success, error) =>
createAction(NOTE_CONTRAT_ADD.POST_CALL, { idContrat, note, success, error });
Затем я буду наблюдать за своими действиями с помощью саги:
function* addNoteContrat({ idContrat, note, success, error }) {
console.log("note :");
console.log(note);
console.log("idContrat : ");
console.log(idContrat);
const value = yield call(addContratNotes, idContrat, note);
if (value.status === 200) {
yield put(setNotesContrat(value.data));
yield getNotesContrat({ idContrat, success, error });
if (success) success();
} else {
yield put(errorNotesContrat(value.data));
if (error) error();
}
}
Я получаю ожидаемый результат, я получаю свой идентификатор и текст в консоли, как и ожидалось. Затем я наблюдаю:
export const watchContrat = function* watchContrat() {
yield takeLatest(NOTE_CONTRAT_ADD.POST_CALL, addNoteContrat);
}
У меня есть папка с именем API, куда я отправляю свои данные на серверЯ использую экземпляр, который использует Axios, я имею в виду, вы увидите, а не
axios.get(url);
Я использую:
myInstance.get(url);
А вот мой метод выполняется, когда мое действие выполняется:
export const addContratNotes = (idContrat, note) => {
console.log("note dans API :");
console.log(note);
console.log("idContrat dans API :");
console.log(idContrat);
const endpoint = template(CONTRAT_NOTE_ADD);
return instance
.post(endpoint({ note }))
.then(values => values)
.catch(err => err.response);
};
И здесь я снова получаю свои данные прямо в консоли, но я получаю ошибку 400 в моей консоли, что снова означает неправильный запрос, как я уже говорил, мой код Java работает нормально, используячванство.
и, наконец, URL, который я использую для отправки данных, находится в моем файле конечных точек:
export const CONTRAT_NOTE_ADD = `${CONTRAT_ENDPOINT}/<%= idContrat %>/note`;
Я отправляю Id в URL и объект в запросе Body ..
Мне действительно нужна помощь, потому что я застрял около двух дней, я могу предоставить любой необходимый код для этого.Любая помощь приветствуется.