post get 给后端传参数

post

方式一 : data: params
复制代码
作为请求体(Request Body)传递:
你已经展示了这种方式,通过data字段直接传递一个对象或数组。这种方式通常用于传递复杂的数据结构。

  
  dowmfrom: function (params) { 
        return request({ 
          url: "/admissionInfo/admissionDataDowload", 
          method: "post", 
          data: params, // 直接发送数组作为请求体
          responseType: 'blob', 
        }); 
      },
方式二 : params: params
复制代码
通过URL参数传递:
这种方式适用于传递简单的键值对数据,通常用于GET请求,但在某些情况下POST请求也可能使用这种方式(尽管不推荐,因为它不如请求体安全)。
如果你的request函数支持将参数附加到URL(通常是通过params或query字段),你可以这样修改:


dowmfrom: function (params) { 
    return request({ 
        url: "/admissionInfo/admissionDataDowload", 
        method: "post", 
        params: params, // 注意这里使用了params而不是data
        responseType: 'blob', 
    }); 
},
方式三: data: formData
复制代码
通过表单数据(Form Data)传递:
这种方式常用于需要上传文件或发送大量表单字段的情况。你可以使用FormData对象来构建表单数据。


dowmfrom: function (formData) { // 注意这里formData应该是一个FormData对象
    return request({ 
        url: "/admissionInfo/admissionDataDowload", 
        method: "post", 
        data: formData, 
        headers: {
            'Content-Type': 'multipart/form-data' // 通常不需要手动设置,因为axios会自动设置
        },
        responseType: 'blob', 
    }); 
},
方式四: data: params
复制代码
通过请求头(Headers)传递:
这种方式不常见,通常用于传递认证令牌或其他元数据。数据本身不会放在请求头中,但可以在请求头中包含一些必要的标识符。

dowmfrom: function (token, params) { 
    return request({ 
        url: "/admissionInfo/admissionDataDowload", 
        method: "post", 
        data: params, 
        headers: {
            'Authorization': 'Bearer ' + token
        },
        responseType: 'blob', 
    }); 
},

get

方式一 : params: params
复制代码
   dowmfrom: function (params) { 
        return request({ 
          url: "/admissionInfo/admissionDataDowload", 
          method: "get", 
          params: params,  // 直接发送数组作为请求体
          responseType: 'blob', 
        }); 
      },
方式二: const url = constructUrl("/admissionInfo/admissionDataDowload", params);
复制代码
直接构造URL:
如果你不想依赖客户端库自动处理参数,你可以手动构造完整的URL,包括查询字符串。然后,你可以将这个完整的URL传递给请求函数。


function constructUrl(baseUrl, params) {
    const queryString = new URLSearchParams(params).toString();
    return `${baseUrl}?${queryString}`;
}
 
dowmfrom: function (params) {
    const url = constructUrl("/admissionInfo/admissionDataDowload", params);
    return request({
        url: url,
        method: "get",
        responseType: 'blob',
    });
},
方式三:/admissionInfo/admissionDataDowload?param1={param1}\¶m2={param2}`,
复制代码
传递单个参数:
如果你的GET请求只需要传递一个或少数几个参数,你也可以直接在URL模板字符串中插入这些参数。但是,这种方法在处理多个参数或参数值包含特殊字符时不太方便。



dowmfrom: function (param1, param2) {
    return request({
        url: `/admissionInfo/admissionDataDowload?param1=${param1}&param2=${param2}`,
        method: "get",
        responseType: 'blob',
    });
},
方式四: params: { id: id },
复制代码
   webfielddel: function (id) {
        return request({
            url: "tableManage/del",
            method: "get",
            params:  { id: id },
        });
    },

页面使用的方式

方式一:
复制代码
    dowmfrom: function (params) { 
        return request({ 
          url: "/admissionInfo/admissionDataDowload", 
          method: "post", 
          data: params, // 直接发送数组作为请求体
          responseType: 'blob', 
        }); 
      },
       



  downloadTemplate() {
      // 将 this.selectList 中的每个项目转换为字符串的数组
      const dowmids = this.selectList.map(item => item.toString());

      const dowm = JSON.parse(JSON.stringify(dowmids))

      // 调用 API 函数并直接传递数组
      allApi.dowmfrom(dowm)
        .then((res) => {
          console.log(res, '111');
          // 根据需要处理响应
        })
        .catch(err => {
          console.error('Error downloading template:', err);
        });
}

 
因为后端要  ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]   所以我们只传  dowm 就可以
方式二:
复制代码
    webfieldinit: function (params) {
        return request({
            url: "tableManage/getByOffice",
            method: "get",
            params: params,
        });
    },
  



 refreshList() {
            this.newtype = JSON.parse(this.value3)
          
            const params = {
                officeId: this.companyDTO,
                type: this.newtype,
            };
            webfield.webfieldinit(params).then((data) => {
                this.dataList = JSON.parse(data.data.content)
                
            }).catch((error) => {
                console.error('Error fetching data:', error);
                this.loading = false;
            });
        },
方式三:
复制代码
    webfielddel: function (id) {
        return request({
            url: "tableManage/del",
            method: "get",
            params:  { id: id },
        });
    },

  webfield.webfielddel(this.ids).then((data) => {
                    console.log(data)
         
                }).catch((error) => {
                    console.error('Error fetching data:', error);
                
                });


   //、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
    // // 还原数据
        // restoration() {
        //     this.loading = true;
        //     console.log(this.loading, 'loading'); // 修正了拼写错误,从 'loda' 改为 'loading'

        //     if (this.ids === '' || this.ids === undefined || this.ids === null) {
        //         console.log('kong ')
        //         alert('已经还原成最初的原始数据了!');
        //         this.loading = false; // 如果不需要刷新页面,可以在这里直接设置 loading 为 false
        //     } else {
        //         console.log(this.ids, 'konglllll ')
        //         webfield.webfielddel(this.ids).then((data) => {
        //             console.log(data)
        //             this.assignDataToArrays();
        //             location.reload(true); // 仅在数据删除成功后刷新页面
        //         }).catch((error) => {
        //             console.error('Error fetching data:', error);
        //             this.loading = false; // 请求失败时设置 loading 为 false
        //         });
        //     }
        // }
相关推荐
辻戋2 小时前
从零实现React Scheduler调度器
前端·react.js·前端框架
徐同保2 小时前
使用yarn@4.6.0装包,项目是react+vite搭建的,项目无法启动,报错:
前端·react.js·前端框架
Qrun3 小时前
Windows11安装nvm管理node多版本
前端·vscode·react.js·ajax·npm·html5
中国lanwp3 小时前
全局 npm config 与多环境配置
前端·npm·node.js
JELEE.4 小时前
Django登录注册完整代码(图片、邮箱验证、加密)
前端·javascript·后端·python·django·bootstrap·jquery
TeleostNaCl6 小时前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
前端大卫7 小时前
为什么 React 中的 key 不能用索引?
前端
你的人类朋友7 小时前
【Node】手动归还主线程控制权:解决 Node.js 阻塞的一个思路
前端·后端·node.js
小李小李不讲道理9 小时前
「Ant Design 组件库探索」五:Tabs组件
前端·react.js·ant design
毕设十刻9 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js