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

本文详细阐述如何使用window.open配合表单技术,实现发送POST请求并传递参数,适用于开发者在JavaScript中操作接口调用。通过创建隐藏输入字段,确保参数安全传输,并给出注意事项和示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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一定要是完整的接口链接,否则会报错,一般公司为了方便更改域名,会封装好接口请求的格式,在请求接口的时候就不用写域名,但这里一定要写完整!!!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YangHuan3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值