Quizás lo resolverías creando un bucle que te cree el string params capturando los datos que te interesen directamente y luego ya puedes mandarlo con el método que prefieras. Algo así como:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript">
function mandardatos() {
var parametros = new Array (
'texto','value',
'check','checked'
);
var params= "?";
var expr;
for (i=0; i<parametros.length;i=i+2) {
eval ("expr = document.getElementById('"+parametros[i]+"')."+parametros[i+1]);
params+=parametros[i]+"="+expr+"&";
}
params=params.substr(0,params.length-1);
alert (params)
}
</script>
</head>
<body>
<form name="form" id="form">
<input name="texto" type="text" id="texto" value="texto" />
<input name="check" type="checkbox" value="valor" id="check" />
<input name="enviar" type="button" value="enviar" onclick="mandardatos()"/>
</form>
</body>
</html>