Pedido de postagem do JavaScript como um envio de formulário

Estou tentando direcionar um navegador para uma página diferente. Se eu quisesse um pedido GET, eu poderia dizer

document.location.href = 'http://example.com/q=a';

Mas o recurso que estou tentando acessar não responderá corretamente, a menos que eu use uma solicitação POST. Se isso não fosse gerado dinamicamente, eu poderia usar o HTML

<form action="http://example.com/" method="POST">
  <input type="hidden" name="q" value="a">
</form>

Então eu apenas enviaria o formulário do DOM.

Mas eu realmente gostaria de código JavaScript que me permita dizer

post_to_url('http://example.com/', {'q':'a'});

Qual é a melhor implementação de cross-browser?

Editar

Me desculpe, eu não estava claro. Eu preciso de uma solução que mude a localização do navegador, assim como enviar um formulário. Se isso for possível comXMLHttpRequestnão é óbvio. E isso não deve ser assíncrono, nem usar XML, então o Ajax não é a resposta.

questionAnswers(29)

yourAnswerToTheQuestion