sábado, 18 de maio de 2013

DataSnap DX3 - JavaScript - JQuery



Esta vídeo aula tem como objetivo ensinar como montar um servidor datasnap delphi xe3 e consumi-lo utilizando um cliente javascript. Para isso, foi utilizando os recursos do JQuery.


Mostro como preparar o delphi para que aceite chamadas de cliente desse tipo, e não somente de um cliente delphi.

Espero que gostem. Qualquer dúvida, sugestão ou comentário pode deixar que eu respondo. Abraços e bons estudos.

10 comentários:

  1. otimo video! parabens.
    uma duvida tem os links dos fontes?

    ResponderExcluir
    Respostas
    1. Muito obrigado...
      Não tenho mais os fontes, devo ter perdido ou apagado...
      Abraços.

      Excluir
  2. Você já tentou transferir um arquivo .pdf ou uma imagem do datasnap server para o client jQuery?

    ResponderExcluir
    Respostas
    1. Seria o "download", já sim, funciona normalmente.

      Uma pena que foi teste, e acabei jogando o código fora mas pode fazer que da certo sim.

      Abraços.

      Excluir
  3. Modifiquei o server adicionando os Headers conforme o video, adicionando CORS e quando chamo o método ReverseString usando JS, sempre dá OPTIONS, não envia o header de autenticação, por exemplo. Alguma sugestão.

    OPTIONS http://192.168.110.128:8081/datasnap/rest/TServerMethods1/ReverseString/ABCD/ 500 (Internal Server Error)

    OPTIONS http://192.168.110.128:8081/datasnap/rest/TServerMethods1/ReverseString/ABCD/ Invalid HTTP status code 500

    XMLHttpRequest cannot load http://192.168.110.128:8081/datasnap/rest/TServerMethods1/ReverseString/ABCD/ Invalid HTTP status code 500

    ResponderExcluir
    Respostas
    1. Deve ter alguma configuração errada. Faz um tempo que fiz esse vídeo já nem me lembro direito mas quando você está no debug realmente acontece esse erro mas só da primeira vez depois o método é chamado automaticamente com o tipo certo e funciona.

      Tenta chamar os métodos atraves de um cliente feito em delphi também pra ver no que da.

      Reveja as configurações e tal, tem alguma coisa boba que você esqueceu de fazer.

      Abraços.

      Excluir
  4. Obrigado por responder.

    Prezado Anderson, você percebeu que está enviando a senha e usuário em texto puro ao chamar o método. Que qualquer um pode pegar as credenciais e utilizar seus métodos a seu bel-prazer?

    Voltando ao comentário anterior. Sim. O datasnap parece instável em algumas vezes. Desligando autenticação, o projeto HTML5 pode invocar métodos remotamente fora do domínio. Com autenticação ativada, o projeto funciona apenas quando estiver hospedado no mesmo domínio do server-side.

    Fora do domínio, fica dando response 401 - unauthorized. Nos meus testes, utilizando HTML5+JS independente, o datasnap (versão XE2 e XE3) inicialmente, retornava o código 500, como salientado, agora está retornando o código de status 401 - unauthorized.

    ResponderExcluir
    Respostas
    1. Eu sei disso, eu fiz a vídeo aula apenas para demostrar que é possível fazer, e não um app que vai rodar em ambiente de produção.

      Esse erro é estranho, pq tenho projeto datasnap rodando completamente fora do dominio e com autenticação e funciona normalmente. Deve ter alguma coisa estranha na sua configuração.

      Excluir
  5. Quando uso um DataModule, e tento carregar uma query com a conexao, exibe no such table xxxxx, sabe alguma coisa!?

    ResponderExcluir
  6. Man Titanium Poker Playing Card - 3-in-1 Handful
    Man Titanium Poker Playing titanium alloy Card. This poker titanium drill bits playing card is a cost of titanium classic titanium daith jewelry poker hand with ford fiesta titanium a classic shape, perfect for both beginners and advanced players.

    ResponderExcluir