Я некоторое время пытаюсь сделать метод патча.
Я попытался проверить свой сервер отдыха с помощью Postman (или других подобных приложений), и он работает, поэтому проблема не в стороне php, а в стороне js. (Я новичок в этом мире.)
Я исследовал код в почтальоне, чтобы увидеть, передаю ли я данные в неправильном формате, но это не так (я использовал FormData).
Поэтому я думаю, что проблема в действиях. js или Редукторы. js часть.
В любом случае, в моих редукторах. js
export const reducer = (state = [] , action) => {
switch(action.type){
case 'MEETING_PATCH':
return {...state, changeMeeting: action.changeMeeting};
default:
return state;
}
}
export default reducer;
Мои действия. js
export const patchMeeting = (idmeeting, changeMeeting) => {
console.log(...changeMeeting);
return (dispatch) => {
fetch(
myapiRoute + "/" + idmeeting, {
method: 'PATCH',
body: changeMeeting,
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
}
)
.then((response) => console.log(response.json()))
.then((changeMeeting) => {
console.log(changeMeeting);
dispatch({
type: "MEETING_PATCH",
changeMeeting: changeMeeting,
});
})
.catch((error) => console.log("An error occurred.", error));
};
};
Находясь на странице, на которой у меня есть форма после отправки данных:
handleSubmit(event) {
event.preventDefault();
let idmeeting = this.state.meeting_id;
let formdata = new FormData();
if(typeof this.state.changeMeeting.meeting.meeting_motivation !== "undefined")
{
formdata.append("meeting_motivation", this.state.changeMeeting.meeting.meeting_motivation);
}
if(typeof this.state.changeMeeting.meeting.date !== "undefined")
{
formdata.append("date", this.state.changeMeeting.meeting.date);
}
this.props.patchMeeting(idmeeting, formdata);
}
Я действительно не понимаю, в чем проблема.
Когда я пытаюсь предоставить данные, я получаю следующие ошибки:
Доступ к выборке в '' из источника 'http://localhost: 3000 ' заблокирован согласно политике CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
PATCH myapiRoute net :: ERR_FAILED
I знаю, что это не проблема с сердечником, потому что я исправил ее (на самом деле я могу сделать пост, получить). Например, эта ошибка появляется в сообщении, когда я вставляю что-то неправильно в выборку.
Как я могу сделать этот метод патча?
Спасибо за вашу помощь.