window.open 传参,get和post两个方法?

url后拼接参数的是get方法,那post方法是怎么样的,有大佬能解释一下,并且给个样例吗?


回答:

window.open是利用浏览器地址栏打开路径,而浏览器地址栏发送的都是get请求,所以单纯的window.open是无法发送post请求的,网上的解决方法大都是先打开一个空白标签页,然后修改里面的内容为form表单,利用form表单提交发送post请求并修改地址栏地址

https://blog.csdn.net/qq_35479063/article/details/107519095


回答:

POST有些繁琐, GET与POST都有跨域问题

 var postParams = {};

postParams.param1 = "param1";

postParams.param2 = "param2";

//当url前无域名时,记得获取host,否则浏览器会报NS_ERROR_MALFORMED_URI错误

var url = "";

windowOpen(url, postParams);

/**

* window.open()方法以post请求方式打开新窗口

* @param url 请求地址

* @param postParams 请求参数

*/

function windowOpen (url, postParams) {

var newWin = window.open();

//没有host时,浏览器会报NS_ERROR_MALFORMED_URI错误,所以url需要加上host,host包括端口号

var host = location.origin;

url = host + url;

var formStr = '<form style="visibility:hidden;" method="POST" action="' + url + '">';

for (var key in postParams) {

formStr += "<input type='text' name='" + key + "' value='" + postParams[key] + "' style='display: none'>";

}

formStr += "</form>";

newWin.document.body.innerHTML = formStr;

newWin.document.forms[0].submit();

//窗口关闭事件

setTimeout(function () {

newWin.close();

}, 250);

}

以上是 window.open 传参,get和post两个方法? 的全部内容, 来源链接: utcz.com/p/934315.html

回到顶部