Il existe une solution (pirate), je l'ai fait plusieurs fois, vous serez en mesure de poster avec JsonP. (Vous serez en mesure de poster un formulaire, plus grand que 2000 char que vous pouvez utiliser par GET)
Application client Javascript
$.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');
En procédant de la sorte, vous ouvrez votre serveur à toutes les requêtes postales, vous devriez le sécuriser à nouveau en fournissant un identifiant ou autre chose.
Avec cette méthode, vous pouvez également changer le type de requête de jsonp à json, les deux fonctionnent, il suffit de définir le bon type de contenu de la réponse.
jsonp
response.setContentType( "text/javascript; charset=utf-8" );
json
response.setContentType( "application/json; charset=utf-8" );
Veuillez noter que votre serveur ne respectera plus la SOP (same origin policy), mais qui s'en soucie ?