go的iris框架进行接收post请求参数获取与axios(vue)的数据传入

iris的post请求&接收数据

package mainimport "github.com/kataras/iris/v12"func main(){app := iris.New()//Get请求app.Get("/",func(ctx iris.Context){ctx.Text("你好,这是首页")})//Post请求app.Post("/postTest",func(ctx iris.Context){name := ctx.PostValue("name") //通过PostValue(requestName)这个api进行获取ctx.Text(name)//用文本响应})//监听端口app.Listen(":8088")
}

前端处理跨域请求

因为iris中我们没有做跨域处理所以我们在vite.config.ts(vite.config.js)中做处理

import { defineConfig } from 'vite'
import path from "path"
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue()],server:{proxy: {'/my-api-go':{target: "http://localhost:8088/",changeOrigin:true,rewrite: path => path.replace(/^\/my-api-go/,'')}}}
})

axios处理

<script setup lang="ts">
import {ref,reactive,Ref} from "vue"
import axios from "axios"
import qs from 'qs'const username:Ref<string> = ref('')
const pwd: Ref<string> = ref('')const value:Ref<string> = ref('')const testBtn01 = () => {axios.get('/my-api-test01/test01').then(async (res:any)=>{console.log(res.data)}).catch((err:any)=>{console.log(err)})
}
const postBtn01 = () => {// 将参数转换成功 formdata 接收格式function stringify (data:any) {const formData = new FormData()for (const key in data) {// eslint-disable-next-line no-prototype-builtinsif (data.hasOwnProperty(key)) {if (data[key]) {if (data[key].constructor === Array) {if (data[key][0]) {if (data[key][0].constructor === Object) {formData.append(key, JSON.stringify(data[key]))} else {data[key].forEach((item, index) => {formData.append(key + `[${index}]`, item)})}} else {formData.append(key + '[]', '')}} else if (data[key].constructor === Object) {formData.append(key, JSON.stringify(data[key]))} else {formData.append(key, data[key])}} else {if (data[key] === 0) {formData.append(key, 0)} else {formData.append(key, '')}}}}return formData}axios({method: 'post',url: '/my-api-go/postTest',data:{name: username.value},headers:{'Content-Type': 'application/x-www-form-urlencoded'},transformRequest:{function(data:any){return stringify(data)}},transformResponse:{async function(data:any){ //async await:异步阻塞value.value = await datareturn data}}})}
}</script><template><div><div><input type="text" placeholder="用户名" v-model="username"/><br /><button @click="postBtn01()">提交</button><p>{{value}}</p></div></div>
</template><style scoped></style>

注意点

  • stringify函数:不需要注意, 复制粘贴即可
  • axios({})
    • method:请求方式,可以是get,post,put,options
    • url:请求api的路径
    • data:传输的参数与go中的获取参数名称(PostValue中的name和data中的name:'')要一致否则后端还是获取不到
    • transformRequest :发送请求时处理
    • transformResponse:接收响应时处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/61917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨境海淘攻略:如何实现自己批量养买家账号海淘

近年来&#xff0c;随着互联网的发展&#xff0c;网购已经成为人们日常生活中不可或缺的一部分。不仅在国内购买商品&#xff0c;在跨境电商行业越来越成熟&#xff0c;很多的消费者开始选择购买国外平台商品&#xff0c;价格相比国内专柜来说会更为优惠。因此&#xff0c;海淘…

【C++初阶】反向迭代器的实现

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

【基于空间纹理的残差网络无监督Pansharpening】

Unsupervised Pansharpening method Using Residual Network with Spatial Texture Attention &#xff08;基于空间纹理的残差网络无监督泛锐化方法&#xff09; 近年来&#xff0c;深度学习已经成为最受欢迎的泛锐化工具之一&#xff0c;许多相关方法已经被研究并反映出良好…

使用SpaceDesk连接平板作为电脑副屏详细步骤教程

文章目录 下载安装PC端安装安卓端安装 配置步骤PC端安卓端 连接 SpaceDesk官网链接https://www.spacedesk.net/ (应该是需要科学上网才能进入) SpaceDesk它可以连接安卓,苹果的平板,手机等&#xff0c;也可以连接其他可以打开网页&#xff08;HTML5&#xff09;的设备。 这里我…

Mysql读取binlog并分析 binlog

1&#xff0c;Mysql 开启 binlog 配置文件中增加 [mysqld] log-binmysql-bin 2.常用 binlog命令 # 是否启用binlog日志 show variables like log_bin;# 查看详细的日志配置信息 show global variables like %log%;# 查看binlog的目录 show global variables like "%l…

npm切换下载源(多种国内源)

npm切换下载源 一、npm二、操作1.查看源2.切换源 一、npm npm是一个NodeJS包管理和分发工具 二、操作 1.查看源 通常默认官方源是https://registry.npmjs.org npm config get registry2.切换源 在国内使用官方下载依赖往往速度慢&#xff0c;易出错&#xff0c;因此我们选…

力扣:76. 最小覆盖子串(Python3)

题目&#xff1a; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 "" 。 注意&#xff1a; 对于 t 中重复字符&#xff0c;我们寻找的子字符串中该字符数量必须不少于 t 中…

node18 vue2启动报错 error:0308010C:digital envelope routines::unsupported

出现原因 貌似是因为是因为 node 17版本开始发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响。 解决方法 第一种方法降低node版本 降低到17以下即可 &#xff0c;如项目不能降低版本 看后面的解决方式 第二种方法…

vue常见问题汇总

来源&#xff1a;https://www.fly63.com/ Q1&#xff1a;安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本/*cnpm website: https://npm.taobao.org/*/npm install -g cnpm --registryhttps://registry.npm.taobao.org// cnpm 的大多命令跟 npm 的是一致的…

[国产MCU]-W801开发实例-实时时钟模块(RTC)

实时时钟模块(RTC) 文章目录 实时时钟模块(RTC)1、RTC介绍2、RTC驱动API3、RTC使用示例本文将详细介绍如何使用W801的实时时钟模块。 1、RTC介绍 RTC是由 PMU模块提供的 BCD计数器 /定时器,两个 32位寄存器包含秒、分、时、日、月、年,以二进制编码的十进制格式表示( B…

Frida-hook:微信数据库的破解

Frida-hook:微信数据库的破解 Frida-hook:微信数据库的破解1. 准备条件2. 用frida获取key2.1 静态分析微信apk文件2.2 frida hook&#xff1a; 3. 用sqlcipher打开数据库&#xff1a; Frida-hook:微信数据库的破解 我们可以从root过的手机中&#xff0c;找到微信相关数据库&am…

《Flink学习笔记》——第十二章 Flink CEP

12.1 基本概念 12.1.1 CEP是什么 1.什么是CEP&#xff1f; 答&#xff1a;所谓 CEP&#xff0c;其实就是“复杂事件处理&#xff08;Complex Event Processing&#xff09;”的缩写&#xff1b;而 Flink CEP&#xff0c;就是 Flink 实现的一个用于复杂事件处理的库&#xff08…

TCP协议基础

一&#xff1a; TCP协议是什么&#xff1f; TCP协议是基于面向连接&#xff0c;可靠传输&#xff0c;基于字节流的传输层通信协议 1. 面向连接 TCP协议是一种面向连接的协议&#xff0c;意味着在双方在建立数据传输之前&#xff0c;需要进行一个逻辑上的连接&#xff0c;且是…

(vue)Vue项目中使用jsPDF和html2canvas生成PDF

(vue)Vue项目中使用jsPDF和html2canvas生成PDF 效果&#xff1a; 安装与使用 1.&#xff1a;安装jsPDF和html2canvas npm install jspdf html2canvas2.在需要生成PDF文档的组件中引入jsPDF和html2canvas <template><div><el-button type"primary"…

SSL/TLS协议的概念、工作原理、作用以及注意事项

个人主页&#xff1a;insist--个人主页​​​​​​ 本文专栏&#xff1a;网络基础——带你走进网络世界 本专栏会持续更新网络基础知识&#xff0c;希望大家多多支持&#xff0c;让我们一起探索这个神奇而广阔的网络世界。 目录 一、SSL/TLS协议的基本概念 二、SSL/TLS的工作…

el-table 单击某一行,该行的前面的多选框显示已勾选

目 录 官网&#xff1a; 1. 单页面 2. table是组件 案例&#xff1a; 官网&#xff1a; 1. 单页面 通过单击获取当前行的数据&#xff0c;然后传给选中显示勾选的方法。 <template><el-tableref"multipleTable":data"tableData"tooltip-eff…

linux 下安装chrome 和 go

1. 安装google-chrome 1.1 首先下载google-chrome.deb安装包 之后 安装 gdebi包 sudo apt install gdebi 1.2 安装所要安装的软件 sudo gdebi code_1.81.1-1691620686_amd64.deb 1.3 解决Chrome无法启动问题 rootubuntu:~/Downloads# whereis google-chrome google-chrome…

Windows SQLYog连接不上VMbox Ubuntu2204 的Mysql解决方法

Windows SQLYog连接不上VMbox Ubuntu2204 的Mysql解决方法 解决方法&#xff1a; 1、先检查以下mysql的端口状态 netstat -anp|grep mysql如果显示127.0.0.1:3306 则说明需要修改&#xff0c;若为: : :3306&#xff0c;则不用。 在**/etc/mysql/mysql.conf.d/mysqld.cnf**&am…

java比较器、迭代器和枚举类型详解

文章目录 1. 比较器1.1 Comparable实例&#xff1a;对自定义对象进行排序 1.2 Comparator实例&#xff1a;对自定义对象进行排序 1.3 equals1.3.1 equals介绍1.3.2 详解 2. 迭代器2.1 Iterator2.2 ListIterator 3. 枚举3.1 枚举访问3.1 枚举细节 1. 比较器 比较器指的是集合存…

【H5页面嵌入到小程序或APP中实现手机号点击复制和拨号功能】

在H5界面嵌入到小程序和移动应用&#xff08;安卓和iOS&#xff09;中实现手指点击手机号弹出弹窗&#xff0c;包含呼叫和复制选项&#xff0c;是可以实现的。下面我将为你提供一个基本的示例&#xff0c;并解释在小程序、安卓和iOS中要做的支持工作。 <!DOCTYPE html> …