Ich habe Code, der eine einfache Anfrage an Twitter (Suche) mit jQuery Ajax-Methode macht. Der Code funktioniert gut in Safari, schlägt aber unter Firefox (3.6.3) fehl. Im Fall von Firefox wird meine Methode ' jQuery.ajax
parameters' success 'aufgerufen, aber die angegebenen Daten sind null. (In Safari erhalte ich viele JSON-Daten.)
Mein Ajax-Anruf lautet:
%Vor%Firebug zeigt Antwort-Header:
%Vor% Der HTTP-Status ist OK (200), der Inhaltstyp ist korrekt application/json
und die Inhaltslänge von 2126 (gzip'd) impliziert, dass Daten zurückkamen. Doch Firebug zeigt an, dass die Antwort leer ist, und ein Test der gelieferten Daten zeigt, dass sie ' null. '
Ich kenne einen ähnlichen Beitrag auf Stack Overflow, Die Funktion jQuery $ .get () ist erfolgreich mit 200, gibt aber keinen Inhalt zurück Firefox und würde davon ausgehen, dass dieses Problem möglicherweise mit der domänenübergreifenden Sicherheit zusammenhängt, aber ... Ich weiß, dass es viele JavaScript-Widgets gibt und was nicht, dass Ajax Daten von Twitter bekommt. Gibt es etwas, das ich aktivieren muss, um dies zu ermöglichen?
Sie versuchen, einen domainübergreifenden Ajax-Aufruf durchzuführen. Dazu müssen Sie JSONP verwenden.
JQuery versteht JSONP und es behandelt alle zugrunde liegenden Tricks für Sie.
Sie müssen nur den Parameter & amp; callback =? zu Ihrer URL und JQuery wird die Anfrage als ein Cross-Domain-Anruf machen. Wichtiger ist, dass es die JSONP-Antwort vom Server versteht und verarbeitet, also für Sie transparent ist.