C'è una soluzione (hack) che ho fatto molte volte, sarai in grado di pubblicare con JsonP. (Sarai in grado di inviare un modulo, più grande di 2000 caratteri di quanto puoi usare per GET)
Applicazione 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);
}
});
GIAVA:
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');
In questo modo, stai aprendo il tuo server a qualsiasi richiesta di post, dovresti proteggerlo nuovamente fornendo identità o qualcos'altro.
Con questo metodo, puoi anche cambiare il tipo di richiesta da jsonp a json, entrambi funzionano, basta impostare il giusto tipo di contenuto della risposta
jsonp
response.setContentType( "text/javascript; charset=utf-8" );
jSON
response.setContentType( "application/json; charset=utf-8" );
Per favore, non che il tuo server non rispetterà più la SOP (stessa politica di origine), ma chi se ne frega?