Ir para conteúdo
Fórum Script Brasil
  • 0

Javascript Post Redirect


Pooh

Pergunta

Boa tarde galerinha do mal!

Estou com uma pulga atrás da orelha no seguinte.

Quero fazer um post redirect sem um formulario, não vou dizer que vasculhei a net pois não vasculhei, achei o básico de sempre

Ajax, e você ter um form na pagina associar os valores no campo e dar submit.

Porque não, até hoje, ninguen fez uma lib que por exemplo:

Lib.post( url , postVars );
Que redireciona você pra página com valores em POST ? pois fiz algo bem parecido mas criando um form dinamicamente, fazendo um append no body e dando submit. a página não apresenta um form "escondido" tosco pra kralho, acontece como se fosse um pacote. ex:
Package.post( 'minhaPagina.xxx' , postObject );
o postObject é um objeto simulando keys mapeadas, ou seja (name:value) ex: var postObject = new Object(); postObject.name = 'foo'; postObject.age = 123; ao final obtemos:
<form method="POST" action="minhaPagina.xxx" id="tokenGeradoPeloPackage"><input type="hidden" name="name" value="foo"/><input type="hidden" name="age" value="123"/></form>

E damos o submit dentro da propria requisição...nada fica visível tanto pro usuário quanto pro dev.

Empacotamos os dados em um form e mandamos, como no correio.

Bom estou mais querendo saber o porque "não" do que o porque sim.

Tenho certeza que os frameworks disponiveis já teriam feito se fosse interessante.

Grato ;)

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom ninguém se manifestou.

De duas uma:

Ou o assunto é ridiculamente simples e ninguém se deu ao trabalho de comentar.

Ou aqui no fórum como esperado só restaram apenas usuários interessados em resolverem seus problemas e irem embora.

Não trazem mais soluções porém problemas.

Apesar desse tópico não ser necessariamente um problema e sim um discussão da melhor maneira de se fazer algo, eu obviamente não esperaria tanto tempo assim

para tomar a minha decisão.

Estou usando a solução que propus mesmo.

Para quem interessar esse script faz nada mais nada menos que gerar dinamicamente um form do tipo POST, adicionar as propriedades do seu objeto como campos do tipo hidden e dar um submit nele, ficando completamente transparente e logicamente parecendo que demos apenas um window.location com postvars.

/*
 * @Author: Diego Yungh Costa <POOH/Poofy> 
 */
var Package;
if (!Package){
    Package = {};
}

(function(){

    /*Form constants*/
    var form_header = '<form method="@method" action="@action" id="@id">';
    var field_template = '<input type="hidden" name="@name" value="@value" />';
    var form_footer = '</form>';
    var Fields = new Array();
    
    function replace_token(name,value,token_string)
    {
        return String(token_string).replace('@'+name, value);
    };
    
    function addValue(name,value)
    {
        Fields.push(replace_token('name',name,replace_token('value', value, field_template)));
    };
    
    function build_form(method,action)
    {
        var form = replace_token('action',action,replace_token('method',method,form_header));
        var data = '';
        for ( var field in Fields)
            data += Fields[field];
        return form+data+form_footer;
    };
    
    Package.post = function (url,postObject)
    {
        for ( var data in postObject)
            addValue(data,postObject[data]);
        var rndID = Math.ceil(Math.random()*777);
        var form =    replace_token('id',rndID,build_form('POST',url));
        document.getElementsByTagName('body')[0].innerHTML += form; //supondo que temos um body...
        document.getElementById(rndID).submit();
    };
    
}());
Uso:
&lt;script src='.../package.js' type="text/javascript"></script>
&lt;script>

//uso 1
Package.post('www.suaURL.com.br',{nome:'Diego',idade:123});

//uso 2
var postVars = new Object();
postVars.nome = 'Fulano';
postVars.idade = 2131231231;
Package.post('www.suaURL.com.br',postVars);

</script>

Não espere que ele serialize arrays nem objetos nem nada do gênero.

Se ao invés de um quebra galho ele virasse uma solução com certeza eu daria suporte a esse tipo de operação, inclusive melhoraria algumas coisas

mas...está funcionando, e provavelmente eu vou rever o fluxo da minha página pra uma hora retirar essa gambi que por hora é necessária.

Qualquer dúvida poste ai ^^

Abraços do Poofy

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...