javascript - window.open 传参,get和post两个方法?
问题描述:
url后拼接参数的是get方法,那post方法是怎么样的,有大佬能解释一下,并且给个样例吗?
第 1 个答案:
window.open是利用浏览器地址栏打开路径,而浏览器地址栏发送的都是get请求,所以单纯的window.open是无法发送post请求的,网上的解决方法大都是先打开一个空白标签页,然后修改里面的内容为form表单,利用form表单提交发送post请求并修改地址栏地址
https://blog.csdn.net/qq_35479063/article/details/107519095
第 2 个答案:
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); }
分布式和集群部署哪种更好?有什么区别?