Existe uma solução (hack) que fiz várias vezes, você poderá postar com JsonP. (Você poderá postar o formulário, com mais de 2.000 caracteres do que você pode usar em GET)
Javascript do aplicativo cliente
$.ajax({
type: "POST", // you request will be a post request
data: postData, // javascript object with all my params
url: COMAPIURL, // my backoffice comunication api url
dataType: "jsonp", // datatype can be json or jsonp
success: function(result){
console.dir(result);
}
});
JAVA:
response.addHeader( "Access-Control-Allow-Origin", "*" ); // open your api to any client
response.addHeader( "Access-Control-Allow-Methods", "POST" ); // a allow post
response.addHeader( "Access-Control-Max-Age", "1000" ); // time from request to response before timeout
PHP:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
Fazendo assim, você está abrindo seu servidor para qualquer solicitação de postagem, você deve protegê-la novamente fornecendo ident ou outra coisa.
Com este método, você também pode alterar o tipo de solicitação de jsonp para json, ambos funcionam, basta definir o tipo de conteúdo de resposta correto
jsonp
response.setContentType( "text/javascript; charset=utf-8" );
json
response.setContentType( "application/json; charset=utf-8" );
Por favor, não que seu servidor não respeitará mais o SOP (política de mesma origem), mas quem se importa?