Frage

Ich habe eine einfache Liste von Datensätzen in einer HTML-Tabelle mit einem Link Löschen für jede Zeile. Der Lösch Link schießt eine AJAX Post-Anforderung zu einer festen URL aus, die wie folgt aussehen: „/delete/record/5

mit jQuerys .ajax() Anruf mit einer POST-Meldung

Die AJAX-Anforderung wird erstellt, wenn auf einem Server ausgeführt wird, https verwendet. Dieser Aufruf schlägt fehl in Firefox 3 auf OSX / Windows-Architekturen. Es funktioniert auf allen anderen Browsern ich getestet habe (OSX / Windows. Chrome, Safari, IE7)

Die Anfragen von einer https-Website kommen und auf die gleiche https-Website gehen. Aber ich denke, irgendwo während des Prozesses die ursprüngliche Anforderung beginnt wie http, und es gibt eine Umleitung Versuch auf unserem Server aus http-> https zu senden und Firefox lehnt das als eine Art von Fälschung umgeleitet werden.

Hat jemand hatte Erfahrung tun .ajax() JQuery fordert eine https-Website mit Firefox? Ich merke, etwas seltsam, wo, wenn die Anforderung „?var=xxx“ Argumente in der URL hat, scheinen die Anforderung häufig dann zu arbeiten, wenn es nicht diese Variablen hat.

War es hilfreich?

Lösung

Klingt wie Sie einen HTTP 411 Fehler sind immer. . Dieser Fehler kann passieren, wenn Sie ohne POST eine data Anfrage sind zu senden.

Um dies zu beheben, fügen Sie ein leeres Objekt ({}) an die data Eigenschaft auf Ihre Anfragen:

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

Andere Tipps

Das scheint unwahrscheinlich ... nicht, dass ich dich zu zweifeln. Aber ich würde vorschlagen, Wireshark Herunterladen und beobachten Sie Ihren HTTP-Datenverkehr zu sehen, wenn Sie das Problem nicht isolieren können. Sie werden in der Lage, die Anfrage von anderen Browsern gegen den Antrag von FF3 geschickt zu vergleichen und sehen ausgesandt, welche Art von Antwort zurück kommt. Wenn es in der Tat ein Problem mit jQuery nicht richtig in FF3 funktionieren könnten Sie in der Lage sein, einen Teil des Codes zu ändern, richtig zu arbeiten.

Sie können sich wahrscheinlich die Firefox Live-Header-Erweiterung installieren, die Sie die Informationen in Ihren Anfragen / Antworten Zugriff auf alle geben. Auf diese Weise können alle Unterschiede fangen sein werden.

Haben Sie Plugins oder Greasemonkey auf Ihrem Firefox installiert Skripte?

Ich habe noch nie Probleme mit jQuery AJAX-Anfragen auf HTTPS. Ich würde vorschlagen, einen Blick auf, was Firebug auftaucht, wenn Sie nicht bereits haben.

Ich habe $.post durch das Senden ein leeres Objekt als data Parameter in Firefox zu arbeiten. Beachten Sie die leeren Klammern für Parameter 2:

$.post(url, {}, function(response){ alert('done'); }, "json");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top