提交表单时,弹出“错误400”,错误截图在这里 https://pastenow.ru/fd19fd27b433267dc843427f9381cbff
changeUserData(userName, userAbout) {
return fetch (this._baseUrl + '/users/me', {
method: 'PATCH',
headers: this._headers,
body: JSON.stringify({
name: userName,
about: userAbout
}),
})
.then(this._checkResponse);
};
export default class PopupWithForm extends Popup {
constructor (selectorPopup, selectorForm, handleFormSubmit) {
super(selectorPopup);
this._selectorForm = this._selectorPopup.querySelector(selectorForm)
this._handleFormSubmit = handleFormSubmit;
};
/* Получение значений из полей ввода */
_getInputValues() {
this._inputList = this._selectorPopup.querySelectorAll('.popup__input');
this._newInputValues = {};
this._inputList.forEach((inputElement) => {
this._newInputValues[inputElement.name] = inputElement.value
});
return this._newInputValues
};
/* Сброс значений полей ввода */
resetForm() {
this._selectorForm.reset();
};
/* Добавление сброса формы в родительский метод закрытия модального окна*/
closePopup() {
super.closePopup();
this.resetForm();
};
/* Установка слушателей */
setEventListeners() {
super.setEventListeners();
this._selectorForm.addEventListener('submit', (evt) => {
evt.preventDefault();
this._handleFormSubmit(this._getInputValues());
this.closePopup();
});
}
};
/* ФОРМА ПРОФИЛЯ */
/* Хендлер отправки формы */
const handleFormEditSubmit = (newInputValues) => {
api.changeUserData(newInputValues)
.then((userData) => {
userInfo.setUserInfo(userData)
})
.catch((err) => {
console.log(err);
});
};
/* Открытие модального окана и подключение слушателей */
const popupEdit = new PopupWithForm(
'.popup_type_edit',
'.popup__input-container_type_edit',
handleFormEditSubmit
);
popupEdit.setEventListeners();
editprofileButton.addEventListener('click', () => {
const userData = userInfo.getUserInfo();
inputName.value = userData.name;
inputAbout.value = userData.about;
popupEdit.openPopup();
});
changeUserData接受两个参数:调用时,只传递一个:
在这种情况下,某些对象被传递给第一个参数,它不能导致字符串,如错误开头所示,第二个参数保持为空 - 如错误末尾所示。