window.open()发送post请求,实现下载文件功能

window.open(url)只能发送get请求,要想发送post请求参数,需要创建表单,然后将参数提交给后台

代码如下:

function openPostWindow(url,data) { // data 是发送请求的参数对象
            var tempForm = document.createElement("form");
            tempForm.id = "tempForm1";
            tempForm.method = "post";
            tempForm.action = url;
            //tempForm.target = "_blank"; //打开新页面
            for(var key in data){
              var hideInput = document.createElement("input");
              hideInput.type = "hidden";
              hideInput.name = key; //参数名
              hideInput.value = data[key]; //实际参数值
              tempForm.appendChild(hideInput);
            }
            if (document.all) {
                tempForm.attachEvent("onsubmit", function () { });        //IE
            } else {
                var subObj = tempForm.addEventListener("submit", function () { }, false);    //firefox
            }
            document.body.appendChild(tempForm);
            if (document.all) {
                tempForm.fireEvent("onsubmit");
            } else {
                tempForm.dispatchEvent(new Event("submit"));
            }
            tempForm.submit();
            document.body.removeChild(tempForm);
        }

注意:url一定要是完整的接口链接,否则会报错,一般公司为了方便更改域名,会封装好接口请求的格式,在请求接口的时候就不用写域名,但这里一定要写完整!!!

或者可以通过获取当前域名,然后进行拼接

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值