Задать вопрос
dmc1989
@dmc1989

Почему на сервер не приходит нормальный объект?

Если передать картинку то работает отлично, но если передать объект, то получаю такое:
{ name: '[object Object]', userId: '5e7d0216a10ace1f680ff92f' }

передавал такое: {name: {fname: "fsdfsd", mName...}}

Что сделать, чтобы на сервер приходил нормальный объект? Много чего перепробовал, но не помогло, JSON.stringify тоже, на сервер тогда приходит просто строка получается, что нормальные типы данных ОК, а объект будет строкой. Должен же быть нормальный способ.

Добавляю тут:
Object.keys(this.state.user).forEach((prop: string) => {
      data.append(prop, this.state.user[prop]);
    });


handleSubmit = (e) => {
    e.preventDefault();

    const data = new FormData();

    Object.keys(this.state.user).forEach((prop: string) => {
      data.append(prop, this.state.user[prop]);
    });

    data.append("userId", this.props.store.user._id);

    axios
      .put('/update/user', data)
      .then(({data}) => {
        this.props.onAddUser(data);
        this.setState({
          user: {},
          usernameEdit: false,
          userPictureEdit: false
        });
      })
      .catch(err => {
        console.error(err);
      });
  }

const BodyParser = require('koa-body');

app.use(BodyParser({
  formidable: {
    uploadDir: __dirname + '/uploads',
    keepExtensions: true
  },
  multipart: true,
  urlencoded: true
}));
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MagicMight
no magic quotes
В чем проблема использовать JSON.stringify?
В теле пакета, в любом случае, хранятся строки. Поэтому на сервере используйте JSON.parse() от полученной строки.
Сейчас тоже приходит строка, это видно по тому, как шаблонизатор превращает вложенную структуру в [object Object]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы