当前位置:   article > 正文

Vue + Axios - HTTP POST 请求示例 (外网地址)_vue发送post请求

vue发送post请求

从 npm 安装 axios
使用npm CLI:npm install axios

使用yarn CLI:yarn add axios

app.vue文件:

<template>
  <Postrequest/>
</template>

<script>
import Postrequest from './components/Postrequest.vue';
export default {
  name: 'App',
  components: {
    Postrequest
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

使用 axios 的带有 JSON 正文的简单 POST 请求
这会向Reqres api 发送一个 HTTP POST 请求,这是一个伪造的在线 REST api,它包含一个通用/api/路由,该路由响应POST任何具有帖子正文内容和动态 id 属性的请求。此示例将一个article对象发送到/api/articles路由,然后将响应中的 id 分配给 vue 组件数据属性articleId,以便它可以显示在组件模板中。

Postrequest.vue文件:

<template>
    <div class="card text-center m-3">
      <h5 class="card-header">Simple POST Request简单POST请求</h5>
      <div class="card-body">Returned Id 请求ID: {{articleId}}</div>
    </div>
  </template>
  
  <script>
  import axios from "axios";
  
  export default {
    name: "post-request",
    data() {
      return {
        articleId: null
      };
    },
    created() {
      // 使用axios的JSON主体的简单POST请求
      const article = { title: "Vue POST Request Example" };
      axios.post("https://reqres.in/api/articles", article)
        .then(response => this.articleId = response.data.id);
    }
  };
  </script>
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

使用 axios 和 async/await 的 POST 请求
这使用 axios 从 Vue 发送相同的 POST 请求,但是这个版本使用一个async函数和awaitjavascript 表达式来等待 promise 返回(而不是使用then()上面的 promise 方法)。

自行更改app.vue文件中引入的组件:
PostRequestAsyncAwait.vue文件:

<template>
    <div class="card text-center m-3">
      <h5 class="card-header">POST Request with Async/Await POST请求与Async/Await</h5>
      <div class="card-body">Returned Id: {{articleId}}</div>
    </div>
  </template>
  
  <script>
  import axios from "axios";
  
  export default {
    name: "post-request-async-await",
    data() {
      return {
        articleId: null
      };
    },
    async created() {
      // POST request using axios with async/await
      const article = { title: "Vue POST Request Example" };
      const response = await axios.post("https://reqres.in/api/articles", article);
      this.articleId = response.data.id;
    }
  };
  </script>
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

使用带有错误处理的 axios 的 POST 请求
这会使用 axios 从 Vue 向 api 上的无效 url 发送 POST 请求,然后将错误消息分配给errorMessage组件状态属性并将错误记录到控制台。

自行更改app.vue文件中引入的组件:
PostRequestErrorHandling.vue文件:

<template>
    <div class="card text-center m-3">
      <h5 class="card-header">POST Request with Error Handling POST请求错误处理</h5>
      <div class="card-body">Error message: {{errorMessage}}</div>
    </div>
  </template>
  
  <script>
  import axios from "axios";
  
  export default {
    name: "post-request-error-handling",
    data() {
      return {
        articleId: null,
        errorMessage: null
      };
    },
    created() {
      // POST request using axios with error handling
      const article = { title: "Vue POST Request Example" };
      axios.post("https://reqres.in/invalid-url", article)
        .then(response => this.articleId = response.data.id)
        .catch(error => {
          this.errorMessage = error.message;
          console.error("There was an error!", error);
        });
    }
  };
  </script>
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

在这里插入图片描述

使用带有设置 HTTP 标头的 axios 的 POST 请求
这使用 axios 从 Vue 再次发送相同的 POST 请求,并设置了几个标头、HTTPAuthorization标头和自定义标头My-Custom-Header。

自行更改app.vue文件中引入的组件:
PostRequestSetHeaders.vue文件:

<template>
    <div class="card text-center m-3">
      <h5 class="card-header">POST Request with Set Headers POST带请求头的</h5>
      <div class="card-body">Returned Id: {{articleId}}</div>
    </div>
  </template>
  
  <script>
  import axios from "axios";
  
  export default {
    name: "post-request-set-headers",
    data() {
      return {
        articleId: null
      };
    },
    created() {
      // POST request using axios with set headers
      const article = { title: "Vue POST Request Example" };
      const headers = { 
        "Authorization": "Bearer my-token",
        "My-Custom-Header": "foobar"
      };
      axios.post("https://reqres.in/api/articles", article, { headers })
        .then(response => this.articleId = response.data.id);
    }
  };
  </script>
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/548616
推荐阅读
相关标签
  

闽ICP备14008679号