vue2 axios post 传参数

本文通过一个具体的示例介绍了如何使用Vue.js框架来处理HTML表单数据,并结合axios实现与后端的数据交互。文章详细展示了表单元素的绑定、事件处理及前后端通信的过程。

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>post交互</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <style>

        </style>
        <link rel="stylesheet" href="css/mui.min.css">
        <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="js/vue.min2.2.js"></script>
        <script type="text/javascript" src="js/axios.min.js"></script>
        <script type="text/javascript" src="js/public.js"></script>

        <link href="css/mystrap.css" rel="stylesheet" type="text/css" />

        <link rel="stylesheet" type="text/css" href="css/app.css" />
    </head>

    <body>
        <div id="app">
            <form @submit.prevent="submit">
                <div class="field">
                    姓名:<input type="text" v-model="user.name">
                </div>

                <div class="field">
                    性別:
                    <label>
                <input type="radio" value="男" v-model="user.gender"> 男
            </label>
                    <label>
                <input type="radio" value="女" v-model="user.gender"> 女
            </label>
                </div>

                <input type="submit" value="提交">

            </form>
        </div>

        <script>
            new Vue({

                el: '#app',
                data: {
                    user: {
                        name: '200',
                        gender: ''
                    }
                },
                
                methods: {
                    submit: function() {
                        var self = this;
                        var formData = JSON.stringify(this.user); // 这里才是你的表单数据
                        console.log(formData);
                        console.log(self.user.name);
                        var params = new URLSearchParams();
                        params.append('PAGETYPE', self.user.name);
                        params.append('funcName', 'GetListData');
            
                        axios.post('1.php', params)
                            .then(function(response) {
                                console.log(response);
                            })
                            .catch(function(error) {
                                console.log(error);
                            });

                    }
                }

            })
        </script>
    </body>

</html>

转载于:https://my.oschina.net/mellen/blog/888589

### Vue3 中使用 Axios 进行 POST 请求并附带参数Vue3 应用程序中,通过 `axios` 发起带有参数POST 请求是一个常见的操作。为了实现这一点,通常的做法是先安装 `axios` 和必要的依赖库(如果需要),然后按照特定的方式构建请求。 对于 POST 请求而言,除了 URL 外还需要提供两个主要部分:一个是作为请求主体的数据对象,另一个则是可选但常用的配置选项来指定诸如头部信息等内容类型等细节[^1]。当涉及到数组类型的参数或者其他复杂结构时,则可能需要用到额外的方法来进行序列化处理以确保服务器能够正确解析这些数据[^2]。 下面给出一段具体的代码示例展示如何利用 `axios` 在 Vue3 中执行包含自定义参数POST 请求: #### 安装所需包 首先确保已经安装了 `axios` 及其辅助工具如 `querystring` 来帮助处理某些特殊场景下的参数编码问题: ```bash npm install axios querystring ``` #### 创建服务实例和服务方法 接着可以在项目的某个位置创建一个专门用来管理 API 调用的服务文件夹,在这里初始化 `axios` 并为其设定全局性的默认行为以及拦截逻辑,比如自动附加认证令牌或是统一错误提示等功能[^3]: ```javascript // src/utils/request.js import axios from 'axios'; import qs from 'querystring'; const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // 设置基础路径 timeout: 5000 // 设定超时时长 }); service.interceptors.request.use( config => { const token = localStorage.getItem('token'); if (token) { config.headers['Authorization'] = `Bearer ${token}`; } return config; }, error => Promise.reject(error) ); export default service; // 导出具体API调用函数供外部组件调用 export function postArticle(data) { return service.post('/api/articles', data); } ``` #### 使用封装好的 API 函数发起请求 最后就是在实际业务逻辑所在的 Vue 组件内部调用之前准备好的 API 方法,并入相应的参数即可完成整个流程[^4]: ```html <template> <div> <!-- 表单或其他触发事件 --> </div> </template> <script setup> import { ref } from "vue"; import { postArticle } from "@/utils/request"; let articleTitle = ref(""); let content = ref(""); async function submitForm() { try { let response = await postArticle({ title: articleTitle.value, body: content.value }); console.log(response.data.id); // 假设后端返回新文章ID } catch (err) { console.error(err.message); } } </script> ``` 以上就是关于如何在 Vue3 中运用 `axios` 执行 POST 请求的同时携带必要参数的一个基本指南。需要注意的是,根据实际情况的不同,特别是针对不同形式的数据提交需求(例如表单数据、JSON 数据或文件上等情况),可能会有略微差异化的做法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值