AJAX https POST-Anfragen mit Jquery nicht in Firefox
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
“
.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.
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");