js提交map类型参数

方式一:使用 xmlHttpRequest 对象发送数据

function sendMapPost(map, url){
    var xmlHttpRequest = createXMLHttpRequest();//创建请求对象
    
    var params = "";
    for(var entry of map){
        if(entry[0]!=null){
            params += entry[0] + "=" + entry[1] + "&";
        }
    }
    if(params.length>0){//如果params不为空字符串,去除最后一个 连接符  &
        params.substr(0, params.length-1);
    }
    
    xmlHttpRequest.open("post", url, true);//true表示异步请求
    xmlHttpRequest.setRequestHeader("cache-control","no-cache");
    xmlHttpRequest.setRequestHeader("contentType","text/html;charset=uft-8") //指定发送的编码
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");  //设置请求头信息
    xmlHttpRequest.send(params);//发送数据
}

方式二:使用虚拟form表单的方式

function sendForm(param_map, url, method){
    var form = document.createElement("form");
    form.setAttribute("action", url);
    form.setAttribute("method", method);
    form.style.display = "none";
    
    //追加参数
    for(var entry of trolley){
        var param_input = document.createElement("input");
        param_input.setAttribute("type", "text");
        
        param_input.setAttribute("name", entry[0]);
        param_input.setAttribute("value", entry[1]);
        
        form.appendChild(param_input);
    }
    
    //body追加form表单
    document.body.appendChild(form);
    
    form.submit();//提交(注意,这里的提交调用者是form表单,不是submit按钮)
}
原文地址:https://www.cnblogs.com/CUI-S/p/8932591.html