Pergunta

Eu tenho uma lista simples de registros em uma tabela HTML com um link de exclusão para cada linha. O link brotos de exclusão fora uma solicitação AJAX post para um url fixo que se parece com: "/delete/record/5"

O pedido AJAX é criado usando a chamada .ajax() do jQuery com uma mensagem POST quando executado em um servidor que usa https. Esta chamada falha no Firefox 3 em arquiteturas OSX / Windows. Ele funciona em todos os outros navegadores eu testei (OSX / Windows:. Chrome, Safari, IE7)

As solicitações são provenientes de um site https e indo para o mesmo site https. Mas eu acho que em algum lugar durante o processo de solicitação original começa como http e há uma tentativa de redirecionamento no nosso servidor para enviá-lo a partir em HTTP> https e Firefox rejeita que redirecionamento como algum tipo de falsificação.

Alguém já teve experiência fazendo chamadas JQuery .ajax() em um site https com o Firefox? I aviso algo estranho em que se o pedido tem argumentos "?var=xxx" na URL, o pedido parece funcionar mais frequentemente, em seguida, se ele não tem essas variáveis.

Foi útil?

Solução

Parece que você está recebendo um HTTP 411 erro. . Este erro pode acontecer se você está enviando um pedido POST sem qualquer data.

Para corrigir isso, adicione um objeto vazio ({}) para a propriedade data aos seus pedidos:

$.ajax({ 
    url: url, 
    type: 'POST', 
    data: {}, // <- set empty data 
    success: function(data, textStatus) { 
        // do something 
    } 
}); 

Outras dicas

Isso parece improvável ... não que eu estou duvidando de você. Mas gostaria de sugerir o download Wireshark e assistindo seu tráfego HTTP para ver se você não pode isolar o problema. Você será capaz de comparar a solicitação enviada por outros navegadores contra o pedido enviado por FF3 e ver que tipo de resposta está voltando. Se ele é realmente um problema com jQuery não funcionar corretamente no FF3 que você pode ser capaz de alterar parte do código para funcionar corretamente.

Provavelmente, você pode instalar a extensão Firefox ao vivo cabeçalhos que lhe dará acesso a todas as informações em suas solicitações / respostas. Desta forma, você vai ser pegar quaisquer diferenças.

Você tem plugins ou scripts GreaseMonkey instalados no Firefox?

Eu nunca tive problemas com pedidos jQuery AJAX sobre HTTPS. Eu sugiro dar uma olhada no que Firebug vira para cima se você já não o fez.

Eu tenho $.post ao trabalho no Firefox através do envio de um objeto vazio como o parâmetro data. Observe os colchetes vazios para o parâmetro 2:

$.post(url, {}, function(response){ alert('done'); }, "json");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top