您现在的位置:首页 >> 前端 >> 内容

windows.open(...)方法通过POST发送数据的代码实现教程

时间:2018/6/26 15:38:51 点击: 31

  核心提示:今天在写项目的时候遇到关于windows.open(...)方法的一个问题,具体问题如下:项目需求为在:A页面上当选中页面上的一条数据后,点击 按钮 然后跳转到一个新的页面B上,B页面在根据A页面上选...

今天在写项目的时候遇到关于windows.open(...)方法的一个问题,具体问题如下:

项目需求为在:A页面上当选中页面上的一条数据后,点击 ‘按钮’ 然后跳转到一个新的页面B上,B页面在根据A页面上选中的数据进行处理。

在开发中遇到一个问题,那就是前端框架miniui没有直接跳转页面类似于 windows.open(...) 的方法,无奈,只有用

windows.open(...)方法跳转,但是该方法默认的是GET请求,也就是说只能在url后面加上 ?a=133&&b=456 之类的,这样不仅数据不安全而且当数据过长过大的时候,使用该方法就会受到限制,那么怎么样才能让其变为 POST 请求呢? 答案是有的,具体请看下图代码:

function openPostWindow(url, name, data1){//url 为请求地址,name 为form表单的target 的name 可以随意写 data1为需要请求的数据  
    var tempForm = document.createElement("form");//创建form表单,以下数form表单的各种参数  
    tempForm.id = "tempForm1";  
    tempForm.method = "post";  
    tempForm.action = url;  
    tempForm.target=name;  
    var hideInput1 = document.createElement("input");//创建标签 <input></input> 标签 然后设定属性,最后追加为 form标签的子标签  
    hideInput1.type = "hidden";  
    hideInput1.name="data";  
    hideInput1.value = data1;  
      
    tempForm.appendChild(hideInput1);  
     
    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();//提交POST请求  
    document.body.removeChild(tempForm);//删除整个form标签  
}  

方法写好了,直接在 ‘按钮’ 下面的onclick相关的方法下调用上面的方法,并传递参数就ok了;

openPostWindow(tmpPath+"/Rwbc/toRwbcResult","rwbc",JSON.stringify(list));

Tags:WI IN ND DO 
作者:网络 来源:weixin_412
请选择您看到这篇文章时的心情: 已有0人表态:
0
0
0
0
0
0
0
0
惊讶 欠揍 支持 很棒 愤怒 搞笑 恶心 不解