如何使用 Axios(VueJS、Nuxt)制作 .post

Posted

技术标签:

【中文标题】如何使用 Axios(VueJS、Nuxt)制作 .post【英文标题】:How to make a .post with Axios (VueJS, Nuxt) 【发布时间】:2020-12-02 16:40:40 【问题描述】:

我是网络开发的新手。想问一下如何用Axios用Nuxt创建.post

我只需要一个向 NodeJS 应用程序发送三个输入的按钮。

<template>
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-body">
                        <form @submit="formSubmit">
                        <strong>Name:</strong>
                        <input type="text" class="form-control" v-model="name">
                        <strong>Email:</strong>
                        <input type="text" class="form-control" v-model="email">
                        <strong>Password:</strong>
                        <input type="text" class="form-control" v-model="password">
                        <button class="btn btn-success">Submit</button>
                  </div>
            </div>
        </div>
    </div>
</template>

<script>
  export default 
    data() 
       return 
         name: '',
         email: '',
         password: ''
       ;
    ,

    methods: 
       //Would like to use the button to do this:
      async sendData () 
        await this.$axios.get('insert', 
          name: this.name, 
          email: this.email,
          password: this.password )
      
     
  
</script>

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您也可以在本地将 axios 导入到您的组件中并以这种方式使用它:

<template>
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-body">
                      <form @submit="formSubmit">
                        <strong>Name:</strong>
                        <input type="text" class="form-control" v-model="name">
                        <strong>Email:</strong>
                        <input type="text" class="form-control" v-model="email">
                        <strong>Password:</strong>
                        <input type="text" class="form-control" v-model="password">
                        <button class="btn btn-success">Submit</button>
                      </form>
                  </div>
            </div>
        </div>
    </div>
</template>

<script>
import axios from 'axios'
export default 
  data() 
    return 
      name: '',
      email: '',
      password: ''
    ;
  ,

  methods: 
    //Would like to use the button to do this:
    async formSubmit() 
      await axios.post('route/url', 
        name: this.name, 
        email: this.email,
        password: this.password
      )
      .then(response => 
        console.log(response)
      )
      .catch(err => 
        console.log(err)
      )
    
  

</script>

不要忘记调用formSubmit 方法来实际发出POST 请求。

此外,您的表单似乎没有结束标记&lt;/form&gt;

【讨论】:

谢谢,是的,我显然需要更多的练习。【参考方案2】:

提交侦听器应该调用该方法:

<form @submit="sendData">

为了发送POST 请求:

this.$axios.post('insert', 
          name: this.name, 
          email: this.email,
          password: this.password 
)
.then(function (response) 
    console.log(response);
)
.catch(function (error) 
    console.log(error);
);

欲了解更多信息,您可以访问their page。

【讨论】:

以上是关于如何使用 Axios(VueJS、Nuxt)制作 .post的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 axios 标头在 vuejs 中传递数据

如何在nuxt js中声明条件语句

如何在 Nuxt 插件中使用错误功能?

Tabulator + Nuxt.js:如何在回调中使用 axios?

VueJS:仅在计算内部未定义变量

如何在 nuxt/axios 中设置 baseUrl?