<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

 

Logo

前往低代码交流专区

更多推荐