Viewing 13 replies - 1 through 13 (of 13 total)
  • Thread Starter uili

    (@uili)

    i’ve updated de jquery.maskedinput.js to the new version and work ok now.. just the autocomplete is not working under ssl!

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Thanks for the warning, I’ll look into it tonight.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    I checked here and seems to be working correctly.
    Maybe it’s something on your server.

    Olá, Claudio.

    Realmente, de baixo de SSL o autocomplete n?o funciona. Pelo que vi, isto está ocorrendo, pois a chamada Ajax para o site toolsweb.com.br (CEP) está sendo feita em HTTP (e n?o HTTPS). Os navegadores modernos como Chrome e Firefox est?o bloqueando scripts, css, plugins e fontes com este tipo de comportamento. Só n?o bloqueiam imagens, música e vídeo.

    *** ERRO (Firebug)
    detailed error: Bloqueado carregamento de conteúdo ativo mesclado “https://www.toolsweb.com.br/webservice/clienteWebService.php?cep=70742000&formato=javascript&_=1378943284684”

    *** AVISO MOZILLA
    Non-SSL active content on SSL pages is blocked by default

    Bug 834836 – Turn on pref to block mixed active content
    Firefox 18 introduced preferences to block loading content from non-SSL (http) sites on SSL (https) pages. One of those preferences, security.mixed_content.block_active_content is now enabled by default in order to enhance user security. That means insecure scripts, stylesheets, plug-in contents, <iframe>, XMLHttpRequest, Web fonts (@font-face) and WebSockets are blocked on secure pages, and a notification is displayed instead. It will not block “display content” like images, videos or audio. See Tanvi Vyas’ blog post for details.

    FONTE: https://developer.mozilla.org/en-US/docs/Site_Compatibility_for_Firefox_23#Non-SSL_contents_on_SSL_pages_are_blocked_by_default

    Mais um detalhe.

    Como o servi?o de consulta a CEP n?o é oferecido em HTTPS pela https://www.toolsweb.com.br, ent?o fica complicado.

    No Site “Stack Overflow” alguns comentários sugerem para omitir o protocolo “https://&#8221; e deixar somente o “//” na linha 18 do arquivo “jquery.address.autocomplete.js”:

    $.getScript('//www.toolsweb.com.br/webservice/clienteWebService.php?cep='

    Testei isto e n?o funcionou, justamente por ele provavelmente assumir o protocolo HTTPS da requisi??o, mas que n?o existe em toolsweb.com.br.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Sim ele n?o oferece https.
    Estou migrado aqui para o https://correiosapi.apphb.com/
    Exatamente, basta ocultar e deixar apenas // que funciona.
    Hoje já sai a vers?o nova com essa nova api.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    O complicado e se esse cara sair do ar xD
    Pesquisei 15 solu??es diferentes e só ele tem ssl.
    Da para fazer interno no WordPress.
    Consultar ajax dentro do WordPress e na fun??o do ajax usar wp_remote_get para consultar qualquer uma dessas apis e retornar o resultado.

    Vantagem que faz a consulta pelo php e usando o WordPress, desta forma da até para cachear os resultados se quiser e também n?o vai ter problema com ssl.
    Entretanto duplica o tempo de resposta quando for consultar.

    Valeuuu, excelente!

    Exatamente, acho que uma solu??o seria fazer a chamada Ajax do “jquery.address.autocomplete.js” para um arquivo PHP dentro do próprio plugin, e dentro desse PHP fazer algo como:

    file_get_contents('https://www.toolsweb.com.br/webservice/clienteWebService.php?cep=70742100&formato=javascript&_=1378943284684')

    Daí acredito que resolveria… o que acha?

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Melhor n?o é usar file_get_contents() e sim wp_remote_get(), assim n?o tem risco de parar. Porque alguns servidores bloqueam o file_get_contents ou cURL xD
    Já o wp_remote_get() vai funcionar em praticamente 99% dos lugares.

    Ok…

    Aproveitando que vai atualizar o plugin autocomplete, gostaria de sugerir uma altera??o que sempre fa?o depois que atualizo o plugin, já que tudo é sobrescrito.

    Basicamente é fazer o autocomplete ser executado somente se o campo endere?o estiver em branco, pois às vezes o cliente ajusta o endere?o e o autocomplete desfaz.

    No meu caso, quando o sistema entra na página de Checkout eu já deixo o foco no campo CEP, que só faz o autocomplete se o campo endere?o estiver vazio, justamente para n?o apagar algum ajuste que o cliente tenha feito no endere?o.

    O ajuste muitas vezes é necessário, pois a resposta do servidor pode n?o vir coerente, como acontece com os endere?os de Brasília, que no logradouro vem algo como “SQN 113 Bloco X”, sendo que 113 é o número (e n?o o logradouro)

    Mas claro, é só uma sugest?o…

    No caso, apenas coloco este código no início da fun??o “addressAutoComplete(field)”

    if ( ($('#' + field + '_address_1').val()).length > 0 )
      return false;

    Falou!

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Agora sim, tudo corrigido na vers?o 2.6.1.
    Funcionando com HTTPS e também n?o tenta completar o endere?o caso ele esteja já preenchido.

    Muito bom, Claudio. Atualizei, testei e está aprovado. Parabéns!

Viewing 13 replies - 1 through 13 (of 13 total)
  • The topic ‘Auto-complete not working under https’ is closed to new replies.