Форма компонента Vue.js отправляет нулевые значения - PullRequest
0 голосов
/ 16 ноября 2018

модель Entity. Ошибки не выбрасываются. Форма будет отправлена ​​и новый объект будет сохранен. Тем не менее, описание и название записываются как «ноль». здесь src/components/NewEntity.vue:

<template>
  <div class="entities">
    <h1>Add Entity</h1>
      <div class="form">
        <div>
          <input type="text" name="title" placeholder="TITLE" v-model="title">
        </div>
        <div>
          <textarea rows="15" cols="15" placeholder="DESCRIPTION" v-model="description"></textarea>
        </div>
        <div>
          <button class="app_entity_btn" @click="addEntity">Add</button>
        </div>
      </div>
  </div>
</template>

<script>
import EntitiesService from '@/services/EntitiesService'
export default {
  name: 'NewEntity',
  data () {
    return {
      title: '',
      description: ''
    }
  },
  methods: {
    async addEntity () {
      await EntitiesService.addEntity({
        title: this.title,
        description: this.description
      })
      this.$router.push({ name: 'Entities' })
    }
  }
}
</script>

вот откуда импортируется скрипт (по какой-то причине SO изначально не позволил бы мне включить Services / Api.js):

services/EntitiesServices:

import Api from '@/services/Api'

export default {
  fetchEntities () {
    return Api().get('/entities')
  },

  addEntity (params) {
    return Api().post('entities', {
      title: params.title,
      description: this.description
    })
  }

services/Api.js:

import axios from 'axios'

export default() => {
  return axios.create({
    baseURL: 'http://localhost:3000',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Access-Control-Allow-Origin': '*'
    }
  })
}

1 Ответ

0 голосов
/ 16 ноября 2018

OG Solution от cperez

В зависимости от вашего сервера вам необходимо 'stringify' ваши параметрыОбъект в вашей функции почты двумя возможными способами.Если ваш сервер принимает JSON, то:

return Api().post('entities', 
    JSON.stringify({
        title: params.title,
        description: this.description
    })
)

Если ваш сервер не принимает JSON, необходимо преобразовать объект в закодированные параметры URL с помощью модуля querystring :

var qs = require('querystring');

return Api().post('entities', 
    qs.stringify({
        title: params.title,
        description: this.description
    })
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...