核心提示:今天在写项目的时候遇到关于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));