Problema com AJAX(acesso externo)

21 views
Skip to first unread message

felipe...@tksolucoes.com.br

unread,
Apr 24, 2017, 3:34:03 PM4/24/17
to web2py-users-brazil
Boa tarde!

Novamente estou no aqui fazendo mais e mais perguntas rsrs, quanto mais entro nesse framework, mais quero me aprofundar.

Estou com um problema que está me deixando de cabelo em pé, seguinte, em localhost eu deixei o sistema que estou criando totalmente funcional, porém fui deixar ele acessível externamente para apresentação, e logo me apareceu um problema, o AJAX não está funcionando corretamente, acontece assim,em localhost funciona perfeitamente, porém quando acesso externamente, e clico no botão "Cadastrar nova tarifa" ele cadastra porém não atualiza a tabela, o erro que me aparece é que o retorno da controller não chega e o processo do AJAX não pode ser continuado, o que no caso seria a atualização da tabela, deixando assim o sistema dinâmico, não gosto da ideia de um sistema onde tem que se passar de pagina em pagina fazer algo, porém estou cadastrando e atualizando na mesma pagina, ou seja a controller "newrate()" não tem uma view, isso pode ser um problema ? 



VIEW:

// Link inicio
$("#btn-cadastro").click(function () {
//ADD show Modal de loading
//$("#loading").modal('show');
$("#loading").removeClass('hide')
var cadprefixo = $('#cadprefixo').val();
var cadlocalidade = $('#cadlocalidade').val();
var cadtempo = $('#cadtempo').val();
var cadincremento = $('#cadincremento').val();
var cadvalor = $('#cadvalor').val();
var cadterminador = $('#cadterminador').val();
$.getJSON("{{=URL(c='manager', f='newrate.json')}}",{cadprefixo,cadlocalidade,cadtempo,cadincremento,cadvalor,cadterminador}, function(result){

atualizaGrid();
$("#retorno").removeClass('hide')
$("#inicialtab").addClass('hide')                            
//RESETAR FORMULARIO AO INSERIR
$('#inserirtarifa').each (function(){
  this.reset();
});
//Remove Hide modal de loading
//$("#loading").modal('hide');
$("#loading").addClass('hide')                            
 });   
      
});


CONTROLLER:

#Inserção de tarifas
@auth.requires_login()
def newrate(): 
  import json
  import gluon.contrib.simplejson
  
  #parametros de entrada da grid
  prefixo = request.vars['cadprefixo']
  localidade = request.vars['cadlocalidade']
  tempo = request.vars['cadtempo']
  incremento = request.vars['cadincremento']
  valor = request.vars['cadvalor']
  terminador = request.vars['cadterminador']
  
  #Montagem de Query
  Tarifa.insert(tar_digito=prefixo, tar_local=localidade, tar_mintime=tempo, tar_increment=incremento, tar_valor=valor, ter_id=terminador)
 
  #consultas
  data = db(Tarifa).select()
 
  #retorno de variaveis grid   
  return dict(data=data) 
 


Espero que entendam e possam me ajudar!

Desde já agradeço!        

PS: não postei o atualiza GRID porque ele está muito grande, mas afirmo que está totalmente funcional em localhost!   

Carlos Costa

unread,
Apr 24, 2017, 6:10:02 PM4/24/17
to web2py-us...@googlegroups.com
Tem problema, sim e não.
Sim porque, por medida de segurança, foi desabilitada por padrão o uso de views genéricas fora do ambiente local.
Não, por que você pode habilitar a view genérica ou criar usa própria view, ou ainda formatar o retorno sem usar uma view (não recomendável, mas no caso do json dá pra fazer tranquilo.

No seu caso, quando você chama a sua url com .json, o que o w2p está fazendo é utilizar automaticamente a view genérica para a extensão .json.
Esse arquivo está presente na pasta views com o nome generic.json.
Nessa view tem um código que pega o dicionário de saída da action e converte para json.
Você nem precisa desses imports que fez na sua action.

Para habilitar as views genéricas você deve alterar essa linha no seu db.py
response.generic_patterns = ['*'] if request.is_local else []
para
response.generic_patterns = ['*'] # if request.is_local else []
para habilitar todas ou especificar uma lista com as extensões permitidas.



--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

felipe...@tksolucoes.com.br

unread,
Apr 24, 2017, 8:57:59 PM4/24/17
to web2py-users-brazil
Nossa muito obrigado! eu vou implementar isso amanhã mesmo!

Porém me surgiu uma duvida!

Quando eu colocar o caminho da controller exemplo:


ele me retorna a saida em json da controller, uso isso muito para depurar meu código e ver como está a saida, isso é perigoso ? alguem pode fazer algo mal intencionado ? 
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com

Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Carlos Costa

unread,
Apr 25, 2017, 7:21:50 AM4/25/17
to web2py-us...@googlegroups.com
Pode ser que há mas eu não vejo nada perigoso nisso aí até então.


Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com

Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages