Pergunta

Em um site que estou construindo, quando você faz login (porque o banco de dados está em um outro servidor), eu uso JSON EQUENDO Para verificar se o usuário como as credenciais certas.

Está funcionando perfeitamente (ie7, ie8 e ff), até que eu tentei Chrome, Safari e Opera onde é um desastre completo.

    $.ajax({
  type: "GET",
  dataType: "jsonp",
  url: "http://someurl.com",
  data: aRequestData,
  cache: false,
  error: function (XMLHttpRequest, textStatus, errorThrown) {
    // typically only one of textStatus or errorThrown
    // will have info
    alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
  },
  success: function(data) {
    alert('success');    
  }
});

Puro e simples e funciona na janela do navegador, no entanto, para minha grande surpresa, não funcionou no Chrome, Safari & Opera, nunca chegou ao alerta de sucesso.

Alguém sabe como resolver esse problema?

Obrigado.

Foi útil?

Solução 2

O problema foi deixado sobre o cabeçalho da página HTML, em uma "caixa de espessura" (plug -in JQuery Thickbox), onde foi feita a chamada do Ajax!

Firefox ou IE não se importam com cabeçalhos repetidos nesse caso, mas o mecanismo Webkit faz!

Eu só tive que remover os cabeçalhos extras, e tudo estava de volta aos trilhos.

Obrigado a todos!

Outras dicas

Você já tentou usar as ferramentas de desenvolvedor embutidas para o Safari e o Chrome para verificar se você obtém uma resposta com o código de status HTTP 200 da sua solicitação?

No Chrome, você pode acessar essas ferramentas no menu 'View', escolha a guia 'Recursos' para ver todas as solicitações feitas. Eu acho que você precisará ativar essas ferramentas em alguma configuração ao usar o Safari.alt text

Você também pode tentar criar uma versão sem jQuery para descartar erros cometidos lá, se não receber o status 200 de suas chamadas, acho que o jQuery falhará sem chamar nenhuma função de erro, a documentação para o uso do JSONP com jQuery não é muito concisa em relação Manipulação de erros.

Crie um arquivo HTML com uma versão editada do seguinte conteúdo e carregue -o em seus navegadores:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title />
      <script type="text/javascript">
         function ws_results(obj) {
             alert(obj);
         }
      </script>
      <script type="text/javascript" src="http://someurl.com?foo=bar&amp;callback=ws_results" />
   </head>
   <body />
</html>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top