Hay una (truco) solución que he lo hizo muchas veces, podrá Publicar con JsonP. (Usted será capaz de publicar de forma, más grande que 2000 carbón que se puede utilizar por GET) Aplicación cliente
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');
Al hacer esto, está abriendo su servidor a cualquier solicitud posterior, debe volver a proteger esto proporcionando ident u otra cosa.
Con este método, también se puede cambiar el tipo de solicitud de jsonp a JSON, tanto en el trabajo, acaba de establecer la respuesta correcta tipo de contenido
jsonp
response.setContentType("text/javascript; charset=utf-8");
JSON
response.setContentType("application/json; charset=utf-8");
Por favor, no se que su servidor ya no respetará el SOP (mismo orig en política), pero ¿a quién le importa?
Mencionó que un "POST asíncrono" no es posible ... ¿entonces puedo hacer un POST síncrono? – Mark
@mark "POST sincrónico" significa enviar un formulario que utiliza
Esto no es del todo cierto.Ciertamente puedes hacer solicitudes 'POST' a otros dominios siempre que tanto ese dominio como tu navegador admitan' CORS'. Pero es totalmente cierto que 'POST' y' JSONP' no son compatibles. – hippietrail