超链接改为 post请求方式
<a href="后台接口地址">这种请求方式一般常见于打开 iframe 页面,或者 点击链接后台下载文件等。这种提交方式属于 get 提交,处于安全问题,要把这种提交方式改为 post 请求。方案:改进<a> 标签,这里前端以 vue框架 为例// 原路径<a :href="getBaseUrl()+'/dev-project/box...
·
<a href="后台接口地址">
这种请求方式一般常见于打开 iframe 页面,或者 点击链接后台下载文件等。
这种提交方式属于 get 提交,处于安全问题,要把这种提交方式改为 post 请求。
方案:
改进<a> 标签,这里前端以 vue框架 为例
// 原路径
<a :href="getBaseUrl()+'/dev-project/box/download?mailId='+emailForm.mailId+'&fileName='+acc.accName" >
//改进
<a href="javascript:;" @click="post(url路径,链接挂载的参数)">
// 示例
<a href="javascript:;" @click="post(getBaseUrl(),{'mailId':emailForm.mailId,'fileName':acc.accName})">
href="javascript:;" 表示 执行一段空白的javascript语句,返回空或者false值,从而防止链接跳转。跟当前a标签无关,这段代码始终都会执行。 href="javascript:;"就是去掉a标签的默认行为,跟href="javascript:void(0)"是一样的
@click="post()" 表示 单击超链接 执行的 js 方法,下面会写到。
传递两个参数,一个url, 一个链接上挂载的参数,以对象的形式存在
post() js方法
// 超链接改为post请求
function post(url, params) {
// 创建form表单
var temp = document.createElement('form')
temp.action = url
temp.method = 'post'
// 表单样式为隐藏
temp.style.display = 'none'
// 初始化表单内部的控件
for (var item in params) {
// 根据实际情况创建不同的标签元素
// 添加input标签
var opt = document.createElement('input')
// 类型为text
opt.type = 'text'
// 设置name属性
opt.name = item
// 设置value属性
opt.value = params[item]
temp.appendChild(opt)
}
document.body.appendChild(temp)
temp.submit()
return temp
}
参链接:
https://blog.csdn.net/yalishadaa/article/details/71249104
https://zhidao.baidu.com/question/1987826329217404947.html
更多推荐
已为社区贡献3条内容
所有评论(0)