使用post方式传递URL参数

遇上用url方式传参发现url超长了。。只好用post方式传。

函数如下:

function post(URL, PARAMS) {
	var temp = document.createElement("form");
	temp.action = URL;
	temp.method = "post";
	temp.style.display = "none";
	for ( var x in PARAMS) {
		var opt = document.createElement("textarea");
		opt.name = x;
		opt.value = PARAMS[x];
		// alert(opt.name)
		temp.appendChild(opt);
	}
	document.body.appendChild(temp);
	temp.submit();
	return temp;
}

调用如下:

	var params = {
		'a' : a,
		'b' : b,
		'c' : c
	};
	post('pm-report!exportAndDownloadPmAnalysisInfo.action', params);

补充:

后来发现array类型传后台很麻烦,就用Ext.encode将数组对象编码为json字符串传递到后台,再转化为ArrayList类型,转化代码如下:

			JSONArray jArray = JSONArray.fromObject(this.modifyList.get(0));
			List sList = JSONArray.toList(jArray, new String(),
					new JsonConfig());
			List list = new ArrayList();
			for(String s :sList){
				list.add(JSONObject.fromObject(s));
			}


你可能感兴趣的:(javascript)