POST vmodapache no funciona


([N1] Juan) #1

Estimados, tengo un servidor linux 64 bits Ubuntu 14.10 con vmodapache funcionando correctamente, y consumo peticiones desde una aplicacion movil desarrollada en qml para android, cuando las peticiones las hago con GET envio y recibo respuestas normal.
Pero deseo subir por ejemplo en Hexadecimal una imagen con POST y no me devuelve nada.
GET ok
// GET
var datos = “dos=asdsad”;
var url = "http://104.131.179.18/velneo/proceso?"+datos;
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if(request.readyState == 4)
{
if(request.responseText != “”)
{
console.log(equest.responseText);
}else{
//
}
}
}
request.open(“GET”, url, true);
request.send();

POST:
// POST
var datos = “dos=asdsad”;
var url = “http://104.131.179.18/velneo/proceso”;
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if(request.readyState == 4)
{
if(request.responseText != “”)
{
console.log(equest.responseText);
}else{
//
}
}
}
request.open(“POST”, url, true);
request.setRequestHeader(“Content-type”, “text/plain”);
request.setRequestHeader(“Accept”, “text/plain”);
request.setRequestHeader(‘Content-length’, datos.length);
request.setRequestHeader(‘Connection’, ‘close’);
request.send(datos);

Cuando ejecuto el metodo POST por ajax desde un web si funciona.
Agradeciendo y esperando su valiosa ayuda.
Atentamente
Juan Moreno
Peru


([N1] Mario) #2

Ojito con hacer POST cross-domain, que no funciona.

Saludos


([N1] wikan) #3

Mira el tema de las peticiones CORS y como habilitarlo en Apache


([N1] Juan) #4

Gracias pero no me aclaro con esto: Cuando la peticion la hago desde mi android tablet con GET funciona normal hacia cualquier proceso y los Return los puedo leer, pero me dices que con POST no funcionaria. En este caso cada cliente android es un dominio diferente? o el cross-domain tiene que ver con dominios ejemplo cixneo.com. Mira si la peticion la hago con POST el proceso ejecuta lo que tenga que hacer, por ejemplo le digo crea nueva Ficha en Memoria y lo hace, pero los parametros son los que no llegan al servidor, por ejemplo envio una cadena de 3 caracteres y no llega.
Gracias por la atencion Mario
Saludos desde Peru
Juan


([N1] Mario) #5

Buenas tardes, los servidores web, por seguridad, no permiten que se les realicen POST que provengan de otro dominio/IP por lo que tienes 2 soluciones:

  • Mirar lo que te plantea @wikan para que el (entiendo) el servidor te admita POST desde otros dominios
  • En vez de hacer un POST, hacer un GET pasando los parámetros. Esta solución tiene la pega de que se pueden ver los parámetros que pases en la url

Saludos


([N1] Juan) #6

Hemos habilitado en el servidor y tampoco. Gracias Manuel.
Ojala me puedan ayudar.


([N1] cristianvg2003) #7

Hola,

Aunque personalmente prefiero un framework como JQuert con su $.ajax me haga el trabajo pesado, lo único que veo medio raro en tu código es el Content-Type que debería de ser:

xmlhttp.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);

Un saludo,


([N1] Juan) #8

La peticion se hace desde una aplicacion QML+qt para Android. y necesito enviarle la foto en hexadecimal. Por eso lo del POST.
Gracias Cristian


([N1] cristianvg2003) #9

Ahhhhhh QT + QMl, bueno por el lado del cross-domain no me preocuparía, esa es una restricción de seguridad para Browsers no clientes HTTP puros, porque no intentas primero con Curl para descartar que no sea problemas al enviar la información.

Un saludo,