Foros del Web » Programando para Internet » ASP Clásico »

Enviar datos con POST sin response.redirect y sin formulario

Estas en el tema de Enviar datos con POST sin response.redirect y sin formulario en el foro de ASP Clásico en Foros del Web. Estimados Amigos, Tengo un problema y no se como resolverlo. Tal vez sea muy sencillo, pero estoy trabado. Tengo una página ASP que es llamada ...
  #1 (permalink)  
Antiguo 01/12/2004, 11:09
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Enviar datos con POST sin response.redirect y sin formulario

Estimados Amigos,

Tengo un problema y no se como resolverlo. Tal vez sea muy sencillo, pero estoy trabado.

Tengo una página ASP que es llamada desde un servidor diferente al mío y que lleva como parametro un XML, es decir

http://www.misitio.net/get_xml.asp?XML=LsXML

Donde LsXML es el parametro de entrada.

En esta página tomo el valor de entrada con

xml = request.querystring("XML") y analizo el XML que me envían.

Hasta alli todo bien.

El problema es que debo enviar 2 respuestas diferentes a URL diferentes:

1- Una para indicar que el XML tiene el formato adecuado.

2.- Otra con el resultado del procesamiento del XML

Tenía pensado usar un POST, pero de veras que no se como hacerlo, puesto que siempre lo he usado con formularios y este es un caso en el que no hay intervencion del usuario.

El caso es que si uso algo como

response.redirect("url/pagina.asp?datos=XXX") ¿Es esto POST?

solo podré enviar una respuesta, pues el response.redirect entrega el control a la nueva URL.

¿Existe otra forma de que pueda enviar datos y continuar en mi página ASP para procesar más datos y hacer el segundo envío??

Mucho sabré agradecer su valiosa colaboración y comentarios.
  #2 (permalink)  
Antiguo 01/12/2004, 12:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
El caso es que si uso algo como

response.redirect("url/pagina.asp?datos=XXX") ¿Es esto POST?
Pues no, no es POST.

Lo que se me ocurre es que generes dos formularios y coloques en campos hidden los valores devueltos por tu aplicación. Luego, al onload de la página coloques una función javascript que, sin intervención del usuario, realice el submit de ambos formularios.
__________________
...___...
  #3 (permalink)  
Antiguo 01/12/2004, 12:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
en este caso, no puedes enviar ni con post ni con get a dos diferentes direcciones, en todo caso, una de ellas tiene que ser transparente para el usuario no? esta la podrías hacer una Sub o Function que haga lo que hace una de las direcciones, y entonces si, dependiendo de esta puedes redirigir.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 01/12/2004, 12:48
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
No se si esto re servira o no para lo que quieres, pero en javascript habia algo que con el body y el evento onload que llamaba a una funcion de javascript que enviaba el formulario inmediatamente sin intervencion del usuario, ahora no se muy bien donde lo tengo pero creo que lo saque de este foro (javascript). Si no lo encuentras lo busco y te lo pongo.
  #5 (permalink)  
Antiguo 01/12/2004, 13:17
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si, lo puedes poner en cualquier evento, pero no creo que lo envíe al mismo tiempo, cuestión de probar...

Código:
<script language= "javascript">
function EnviaForma()
{
 document.nombre_de_forma.submit();
}
</script>
Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 01/12/2004, 14:47
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
gracias amigos...voy a probar y les aviso...
  #7 (permalink)  
Antiguo 01/12/2004, 19:23
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Como hago con las dos formas??

Amigos,

Acabo de probar incluyendo la función javascript que me indicaron arriba

<script language= "javascript">
function EnviaForma()
{
document.nombre_de_forma.submit();
}
</script>


El problema es que tengo que enviar 2 formas, entonces intenté lo siguiente:

<script language= "javascript">
function EnviaForma()
{
document.status.submit();
document.envio.submit();
}
</script>

Las formas son las siguientes:

1.- La que envía indicando el resultado de la recepción de los datos.(Llamada Status)

<form method="POST" name="status" action = "http://www.xxx.com/recibe_status_en_cyclelogic.asp">
<input type = "hidden" name = "status" value = <%=resultado%>
</form>


2.- La que envía los datos procesados (Llamada envio)

<form method="POST" name="envio" action = "http://www.xxx.com/recibe_datos_en_cyclelogic.asp">
<input type = "hidden" name = "strServiceName" value = "VALOR"
<input type = "hidden" name = "strSender " value = "VALOR"
<input type = "hidden" name = "strOriginator" value = "VALOR"
<input type = "hidden" name = "strMsgContentType" value = "VALOR"
</form>

El problema es que cualquiera de las 2 formas que coloque más abajo en la página, dará un error en javascript que indica:

Error "document.forma_que_esta_mas_abajo" es nulo o no es un objeto

Hice una prueba quitando una de las formas y luego la otra, y en ambos casos funciona. pero al colocar las 2, no hay manera.

¿Pueden darle un vistazo a ver que tal??

Mil gracias de antemano amigos...

  #8 (permalink)  
Antiguo 01/12/2004, 19:32
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Otra pureba

Acabo de probar cambiando el nombre de la variable de la forma status, ya que también se llama igual...resultado: un matíz diferente del fracaso
  #9 (permalink)  
Antiguo 01/12/2004, 20:53
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
¿Porque no usar Microsoft.XMLHTTP?

Amigos,

He estado pensando en algo

El formato que recibo en mi página es XML, de hecho, lo recibo como parametro y lo parseo usando Microsoft.XMLDOM. Parte del código abajo:

xml = request.querystring("XML")
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.validateOnParse = True
xmlDoc.loadXML(xml)

Aca viene el codigo para extraer los datos del XML y almacenarlos en mi B/D.

Como ya les comenté, debo enviar 2 respuestas. 1 para indicar que el XML recibido está bien (o no) y la otra con algunos datos procesados.

El asunto es que yo debo enviar estos datos a 2 url's diferentes y una de las opciones es hacerlo usando XML.

Ahora bien, si usé Microsoft.XMLDOM para obtener y procesar los datos...podría usar Microsoft.XMLHTTP para enviarlos??

He averiguado algo y pude observar lo siguiente:

dim objXMLHTTP
set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "POST", "http://url.com/pag.asp", false
objXMLHTTP.SetRequestHeader "Content-type", "text/html"
objXMLHTTP.Send

Será posible usar este objeto para enviar la primera respuesta y luego la segunda sin necesidad de complicarme con un Onload que pretende enviar 2 formas al mismo tiempo??

Como haría enviar los datos? Sería algo asi?

objXMLHTTP.Open "POST", "http://url.com/pag.asp?dato1=1&dato2=2", false

Mucho agradecería los comentarios, pues es muy poco lo que se acerca de este objeto.

  #10 (permalink)  
Antiguo 01/12/2004, 22:40
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Amigos,

Efectivamente....pude enviar datos a los 2 URL sin ningun problema usando el objeto Microsoft.XMLHTTP...

gracias....
  #11 (permalink)  
Antiguo 31/01/2005, 22:16
 
Fecha de Ingreso: enero-2005
Mensajes: 15
Antigüedad: 19 años, 4 meses
Puntos: 1
disculpen si alargo el tema pero...

En estos momentos estoy en un dilema similar.
Primero que nada soy desarrollador PHP al objeto y no manejo mucho ASP

Lo otro es que miraban tu ejemplos (luis vazquez) y yo tambien estoy tratando de hacer transacciones con cyclelogic.

la cosa es que ellos me enviaron este ejemplo

<%
Set http = Server.CreateObject("Microsoft.XMLHTTP")
http.open "POST","http://example.com/prueba.asp",false http.send
"<?xml version=""1.0""?>
<ProcessMOResult><BrandId>00000011
</BrandId><Text>Text</Text><ANI>1199443615</ANI></ProcessMOResult>"
response.write http.responsetext
%>


y por lo que entiendo de las transacciones HTTP (igual no soy nuevo en esto)

se aprecia un envio por POST a la url de "prueba.asp" , que para estos efectos seria mi direccion la cual recibiria el xml que ellos me envian, en cual se ve mas abajo. En definitiva ellos me dicen que asi me envian un xml de entrada a mis aplicaciones PHP, pero yo no entiendo como vienen este string del XML, en una variable POST, GET .... en un archivo

si alguien me pudiera explicar como trabajan los metodos OPEN y SEND de la "clase " Microsoft.XMLHTTP , le estare eternamente agradecido y le sere un fiel ascesor de las tecnologias GNU/Linux , que no esta demas en estos dias.


Gracias a todos
  #12 (permalink)  
Antiguo 01/02/2005, 08:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Una referencia básica: http://www.4guysfromrolla.com/webtech/110100-1.shtml
y no puede faltar una del excelente sitio de w3schools: http://www.w3schools.com/dom/dom_http.asp

Saludos
  #13 (permalink)  
Antiguo 22/05/2008, 16:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: ¿Porque no usar Microsoft.XMLHTTP?

Cita:
Iniciado por luisvasquez Ver Mensaje
Amigos,

He estado pensando en algo

El formato que recibo en mi página es XML, de hecho, lo recibo como parametro y lo parseo usando Microsoft.XMLDOM. Parte del código abajo:

xml = request.querystring("XML")
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.validateOnParse = True
xmlDoc.loadXML(xml)

Aca viene el codigo para extraer los datos del XML y almacenarlos en mi B/D.

Como ya les comenté, debo enviar 2 respuestas. 1 para indicar que el XML recibido está bien (o no) y la otra con algunos datos procesados.

El asunto es que yo debo enviar estos datos a 2 url's diferentes y una de las opciones es hacerlo usando XML.

Ahora bien, si usé Microsoft.XMLDOM para obtener y procesar los datos...podría usar Microsoft.XMLHTTP para enviarlos??

He averiguado algo y pude observar lo siguiente:

dim objXMLHTTP
set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "POST", "http://url.com/pag.asp", false
objXMLHTTP.SetRequestHeader "Content-type", "text/html"
objXMLHTTP.Send

Será posible usar este objeto para enviar la primera respuesta y luego la segunda sin necesidad de complicarme con un Onload que pretende enviar 2 formas al mismo tiempo??

Como haría enviar los datos? Sería algo asi?

objXMLHTTP.Open "POST", "http://url.com/pag.asp?dato1=1&dato2=2", false

Mucho agradecería los comentarios, pues es muy poco lo que se acerca de este objeto.



Hola Luis, (o algún miembro del foro que pueda ayudarme)

Fijate que actualmente me encuentro en el mismo problemita que tuviste hace algun tiempo con lo del envío de Mensajes a través de la misma compañia (Cyclelogic). Me preguntaba si pudieras orientarme un poco, yo me encuentro desarrollando en JAVA con JSP, AJAX y Struts, no se si conoscas algo al respecto. Mi duda es, cuando la empresa Cyclelogic me envía un XML a un URL mío, yo tengo que hacer un XMLHttpRequest en esa página? o en mi URL incluiria algo asi como www.mipagina.com/enviarmensaje.do?XML=datos_en_xml ?

La verdad me he metido muy poco a XML y no tengo mucho conocimiento en cómo recibir ese archivo, podrías ayudarme y decirme por donde seguir mi línea de investigación

Gracias

Saludos desde Mexico
  #14 (permalink)  
Antiguo 08/02/2012, 08:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 3
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Enviar datos con POST sin response.redirect y sin formulario

Estimados:

He buscado mucho y no logro dar con la solución a mi problema. Es la primera vez que debo trabajar con webservices, xml y asp y hay tanta info por todos lados, y distintas maneras de hacer las cosas que realmente me confunde...

Necesitaria si pueden darme una mano con mi problema:

Se trata de obtener la percepción o retención de Ingresos Brutos del servidor de ARBA (Argentina). Es un webservice que al enviarle un xml con cierto formato informando el nro. de cuit, devuelve otro xml con la retención o percepcion correspondiente a dicho contribuyente.

El tema es que necesito que trabaje online, desde una página en mi web. Esta página es para que los usuarios se den de alta para operar en un sitio de comercio electrónico, por lo tanto, a parte de los datos del usuario, debo obtener el porcentaje de percepción consumiendo dicho webservice para luego almacenarlo en la base de datos.

Ahora paso a explicar mas técnicamente lo que no puedo realizar:

Todo lo manejo desde ASP clásico...

El instructivo de ARBA dice:

ENTRADA: La aplicación cliente, deberá hacer un requerimiento https al servicio "https://dfe.arba.test/retenciones/webserviceconsulta" enviando un formulario multipart por metodo POST con los siguientes atributos:
usuario, password y un FILE (xml con los datos a consultar)

SALIDA: El servicio devuelve las alícuotas para el CUIT correspondiente. Si la transcción es exitosa, se devuelve un archivo XML con ciertos datos dentro.

El problema es el siguiente.

Necesito realizar todo este proceso (envio y recepción del xml) pero sin tener que oprimir un botón SUBMIT en el sitio, puesto que se debe realizar sin intervención del usuario....

Lo que logré es enviar el xml creando un form con los datos solicitados, y en un div hidden, para que no se vea nada, luego desde javascript hago el submit....hasta aca todo bien, pero el webservice me responde con el archivo xml pero el explorador me pide GUARDAR o ABRIR...y lo que necesito es poder capturarlo y leerlo con asp para poder obtener la alicuota.

Espero haberme expresado bien y que me entiendan cual es mi problema....

He probado con el siguiente codigo:

Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
ServerXmlHttp.open "POST", "http://www.domain.com/page.asp"
ServerXlHttp.setRequestHeader "Content-Length", Len(PostData) ServerXmlHttp.send PostData
If ServerXmlHttp.status = 200 Then
TextResponse = ServerXmlHttp.responseText
XMLResponse = ServerXmlHttp.responseXML
StreamResponse = ServerXmlHttp.responseStream
Else
' Handle missing response or other errors here
End If
Set ServerXmlHttp = Nothing

pero al momento de realizar el SEND, no sé como enviar el archivo, y no una variable...realmente estoy confundido....

Este código lo obtuve de un foro, lo coloco para que tengan alguna idea de lo que intentaba utilizar....porque nisiquiera se si estoy por el camino correcto...

Les pido ayuda.....desde ya agradezco a todos aquellos que puedan orientarme....y quizás ayudar a muchos que tengan este mismo inconveniente con otros webservices de ARBA...ya que se manejan muy parecidos....

Abrazo a Todos !!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:45.