Реагируйте и Redux: исправьте метод правильно - PullRequest
0 голосов
/ 28 апреля 2020

Я некоторое время пытаюсь сделать метод патча.

Я попытался проверить свой сервер отдыха с помощью 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 знаю, что это не проблема с сердечником, потому что я исправил ее (на самом деле я могу сделать пост, получить). Например, эта ошибка появляется в сообщении, когда я вставляю что-то неправильно в выборку.

Как я могу сделать этот метод патча?

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...