Question

J'ai une simple liste d'enregistrements dans un tableau HTML avec un lien de suppression pour chaque ligne. Le lien de suppression tire hors d'une demande de poste AJAX à une URL fixe qui ressemble à: « /delete/record/5 »

La requête AJAX est créée en utilisant l'appel de .ajax() de jquery avec un message POST lors de l'exécution sur un serveur qui utilise https. Cet appel échoue dans Firefox 3 sur les architectures OSX / Windows. Il fonctionne sur tous les autres navigateurs que j'ai testé (OSX / Windows:. Chrome, Safari, IE7)

Les demandes proviennent d'un site https et aller au même site https. Mais je pense que quelque part au cours du processus de la demande initiale commence comme http et il y a une tentative de redirection sur notre serveur pour envoyer de type HTTP> https et Firefox rejette redirigeant comme un certain type de faux.

Quelqu'un at-il avait l'expérience de faire .ajax() JQuery appelle un site https avec Firefox? Je remarque quelque chose d'étrange où, si la demande a « ?var=xxx » arguments dans l'URL, la demande semble fonctionner plus souvent alors si elle ne dispose pas de ces variables.

Était-ce utile?

La solution

Sons comme vous obtenez une erreur HTTP 411. . Cette erreur peut se produire si vous envoyez une demande de POST sans data.

Pour corriger cela, ajoutez un objet vide ({}) à la propriété data à vos demandes:

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

Autres conseils

Cela semble peu probable ... pas que je te mettre en doute. Mais je vous suggère de télécharger Wireshark et regarder votre trafic HTTP pour voir si vous ne pouvez pas isoler le problème. Vous serez en mesure de comparer la requête envoyée par d'autres navigateurs contre la requête envoyée par FF3 et de voir quel genre de réponse est de retour. S'il est en effet un problème avec jQuery ne fonctionne pas correctement dans FF3 vous pourriez être en mesure de modifier une partie du code pour fonctionner correctement.

Vous pouvez probablement installer l'extension Firefox en direct en-têtes qui vous donnera accès à toutes les informations contenues dans vos demandes / réponses. De cette façon, vous serez attraper toutes les différences.

Avez-vous des plugins ou des scripts GreaseMonkey installés sur votre Firefox?

Je n'ai jamais eu des problèmes avec les demandes jQuery AJAX sur HTTPS. Je vous suggère de jeter un oeil à ce que Firebug se présente si vous avez pas déjà.

Je me suis $.post à travailler dans Firefox en envoyant un objet vide comme paramètre data. Notez les crochets vides pour le paramètre 2:

$.post(url, {}, function(response){ alert('done'); }, "json");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top