none
SUBMIT RRS feed

  • Pergunta

  •  

    Galera,

     

    Como posso fazer um POST sem clicar no SUBMIT em uma página ASP.

     

    Já tentei com o server.transfer, mas dá erro.

     

    Se alguém puder me ajudar.

     

    Obrigado.

    sexta-feira, 4 de janeiro de 2008 14:26

Respostas

  • Olá Perrot,

     

    Caso você necessite apenas redirecionar o usuário para uma determinada página após a execução do seu script utilize o Response.Redirect no final da página, exemplo:

    Code Block

    Response.Redirect("pagina.asp")

     

    Caso necessite que isto seja feito por POST e não GET utilize o código abaixo no final da sua página:

    Code Block
    <Script>document.form1.submit();</Script>

     

    Neste caso o formulário "form1" deve existir em alguma parte do seu código indicando no "action=..." a página para qual o usuário será redirecionado.
    sexta-feira, 4 de janeiro de 2008 19:34

Todas as Respostas

  • Olá Perrot,

     

    Com ASP não dá, você pode fazer utilizando JavaScript, exemplo:

     

    Code Block

    <form name="form1" action="pagina.asp" method="POST">

    ...

    </form>

     

    <input type="button" name="Submit por JS" value="Submit por JS" OnClick="document.form1.submit();">

     

     

    sexta-feira, 4 de janeiro de 2008 16:06
  • Augusto,

     

    Não deu certo.  Segue meu código para você ver o q eu fiz de errado:

     

     

     

    <%

     

    ' Verifica se é o primeiro retorno do Itaú

    If Request("DC") <> "" Then

    ' Define valores do estabelecimento

    loja = "11"

    URLRecibo = ""

    Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")

    'Monta os dados postados

    valores = "meio_pagamento_seguro=ITAU"

    valores = valores & "&loja=" & loja

    valores = valores & "&DC=" & Request("DC")

    valores = valores & "&URLRETORNO=" & URLRecibo

    valores = valores & "&acao=RETORNO"

    objSrvHTTP.open "POST", "https://comercio/comercio.comp", False

    objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

    objSrvHTTP.send valores

    If objSrvHTTP.Status = 200 Then

    response.write objSrvHTTP.responseText

    Else

    Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText

    End If

    response.end

    Else

     

    ' Exibe os parâmetros retornados

    Response.write "Código da empresa: " & Request("codEmp") & "<br>"

    Response.write "Número do pedido: " & Request("pedido") & "<br>"

    Response.write "Tipo de pagamento escolhido: " & Request("tipPag") & "<br>"

    ' Número do pedido

    npedido = Request("pedido")

    if request("compVend") = "" then

    Response.write "Consultando..." & "<br>"

    ' Define valores do estabelecimento

    loja = "11"

    URLRecibo = ""

    Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")

    'Monta os dados postados

    valores = "meio_pagamento_seguro=ITAU"

    valores = valores & "&loja=" & loja

    valores = valores & "&pedido=" & Request("pedido")

    valores = valores & "&formato=1"

    valores = valores & "&acao=CONSULTA"

    objSrvHTTP.open "POST", "https://comercio/comercio.comp", False

    objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

    objSrvHTTP.send valores

    Response.write "Consultando Erro..." & "<br>"

    If objSrvHTTP.Status = 200 Then

    Response.write "Sem Erro..." & "<br>"

    response.write objSrvHTTP.responseText

    Else

    Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText & "<br>"

    End If

     

     

    Response.write "Consultando XML..." & "<br>"

    ' URL do componente

    URLcomp = "https://comercio/comercio.comp"

    ' Login de cliente da loja

    loja = "11"

    ' Caminho físico do diretório DADOS

    caminho = ("e:\home\11\dados\" & npedido & ".XML")

    valores = "meio_pagamento_seguro=ITAU"

    valores = valores & "&loja=" & loja

    valores = valores & "&pedido=" & npedido

    valores = valores & "&formato=1"

    valores = valores & "&acao=CONSULTA"

    Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")

    objSrvHTTP.open "POST", URLcomp, false

    objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

    objSrvHTTP.send valores

    If objSrvHTTP.Status = 200 Then

    XMLConsulta = objSrvHTTP.responseText

    Else

    Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText

    Response.end

    End If

    Set objSrvHTTP = Nothing

    ' ################################################################################################

    set objFSO = Server.CreateObject("Scripting.FileSystemObject")

    set objFSOfile = objFSO.CreateTextFile(caminho)

    objFSOfile.WriteLine(""&XMLConsulta&"")

    objFSOfile.close

    set objFSOfile = nothing

    set objFSO = nothing

    ' ################################################################################################

    Function pegaValorAtrib(fctArquivo,fctNode,fctAtrib)

    set FctobjXML = CreateObject("Microsoft.XMLDOM")

    FctobjXML.preserveWhiteSpace = False

    FctobjXML.async = False

    FctobjXML.validateOnParse = True

    FctobjXML.resolveExternals = True

    FctobjXML.load (FctArquivo)

    Set FctobjRoot = FctobjXML.documentElement

    Set configuracao = FctobjRoot.selectSingleNode(fctNode)

    pegaValorAtrib = configuracao.getAttribute(fctAtrib)

    set FctobjXML = Nothing

    Set FctobjRoot = Nothing

    End Function

    CodEmp = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='CodEmp']","VALUE")

    Pedido = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='Pedido']","VALUE")

    Valor = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='Valor']","VALUE")

    tipPag = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='tipPag']","VALUE")

    sitPag = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='sitPag']","VALUE")

    dtPag = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='dtPag']","VALUE")

    codAut = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='codAut']","VALUE")

    numId = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='numId']","VALUE")

    compVend = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='compVend']","VALUE")

    tipCart = pegaValorAtrib(caminho,"PARAMETER/PARAM[@ID='tipCart']","VALUE")

     

    response.write "CodEmp: " & CodEmp & "<br>"

    response.write "Pedido: " & Pedido & "<br>"

    response.write "Valor: " & Valor & "<br>"

    response.write "tipPag: " & tipPag & "<br>"

    response.write "sitPag: " & sitPag & "<br>"

    response.write "dtPag: " & dtPag & "<br>"

    response.write "codAut: " & codAut & "<br>"

    response.write "numId: " & numId & "<br>"

    response.write "compVend: " & compVend & "<br>"

    response.write "tipCart: " & tipCart & "<br>"

    else

    Response.write "Código da empresa: " & Request("compVend") & "<br>"

    Response.write "Código Aut: " & Request("codAut") & "<br>"

    Response.write "Código NumID: " & Request("numID") & "<br>"

    end if

    end if

    %>

     

    <HTML>

    <head>

    </head>

    <body>

    <form name="form1" method=post action=FinalItau.aspx>

    <input type=text name="pedido" value="<%= Request("pedido") %>" />

    </form>

    <input type="button" name="Submit por JS" value="Submit por JS" OnClick="document.form1.submit();">

     

     

    </body>

    </HTML>

     

     

    Onde será q estou errando?

     

    Obrigado.

    sexta-feira, 4 de janeiro de 2008 19:22
  • Olá Perrot,

     

    Caso você necessite apenas redirecionar o usuário para uma determinada página após a execução do seu script utilize o Response.Redirect no final da página, exemplo:

    Code Block

    Response.Redirect("pagina.asp")

     

    Caso necessite que isto seja feito por POST e não GET utilize o código abaixo no final da sua página:

    Code Block
    <Script>document.form1.submit();</Script>

     

    Neste caso o formulário "form1" deve existir em alguma parte do seu código indicando no "action=..." a página para qual o usuário será redirecionado.
    sexta-feira, 4 de janeiro de 2008 19:34
  • Obrigado augusto. 

     

    Deu td certo.

    sexta-feira, 4 de janeiro de 2008 20:24
  • Ola Pessoal,

     

    Dependendo da necessidade, também dá para utilizar uma chamada XMLHTTP, mas acredito que não seria este caso. Eu tive a mesma necessidade e senti falta de uma funcionalidade como o ASP.NET permite, mas, ASP é ASP e o jeito e tentar driblar os obstaculos.

     

    Grande abraço a todos e Feliz 2008.

     

    Tritech Informática - Consultoria e Desenvolvimento de Soluções em TI.
    Microsoft Certified Partner

     

    sábado, 5 de janeiro de 2008 15:34