Mam kod, który sprawia, że proste żądanie pobrania na Twitter (wyszukiwanie) przy użyciu metody Ajax jQuery. Kod działa poprawnie w Safari, ale kończy się niepowodzeniem w Firefoksie (3.6.3). W przypadku Firefoxa wywoływana jest moja metoda "success" parametrów jQuery.ajax
, ale dostarczone dane mają wartość null. (. W Safari, otrzymuję dużo danych JSON)Wywołanie jQuery.ajax na Twitterze powiedzie się, ale zwróci wartość null dla przeglądarki Firefox
Moja Ajax wywołanie jest:
$.ajax({
url: 'http://search.twitter.com/search.json?q='+searchTerm,
dataType: 'json',
async: true,
beforeSend: function(request) {
window.console.log('starting AJAX request to get Twitter data');
},
success: function(data, textStatus, request) {
window.console.log('AJAX request to get Twitter succeeded: status=' + textStatus);
callback(data);
},
error: function(request, status, error) {
window.console.log('Ajax request to get user data --> Error: ' + status);
errback(request, status, error);
}
});
Firebug pokazuje nagłówki odpowiedzi:
stanDate Sun, 11 Apr 2010 22:30:26 GMT
Server hi
Status 200 OK
X-Served-From b021
X-Runtime 0.23841
Content-Type application/json; charset=utf-8
X-Served-By sjc1o024.prod.twitter.com
X-Timeline-Cache-Hit Miss
Cache-Control max-age=15, must-revalidate, max-age=300
Expires Sun, 11 Apr 2010 22:35:26 GMT
Vary Accept-Encoding
X-Varnish 1827846877
Age 0
Via 1.1 varnish
X-Cache-Svr sjc1o024.prod.twitter.com
X-Cache MISS
Content-Encoding gzip
Content-Length 2126
Connection close
HTTP jest OK (200) Typ zawartości jest odpowiednio application/json
, a długość zawartości 2126 (gzip'd) oznacza, że dane wróciły. Jednak Firebug pokazuje, że odpowiedź ma być pusta, a test dostarczonych danych pokazuje, że ma wartość "null".
Jestem świadomy podobnym stanowisku na przepełnienie stosu, jQuery $.get() function succeeds with 200 but returns no content in Firefox iz która przejęłaby ten problem jest prawdopodobnie związane z bezpieczeństwem w wielu domenach, ale ... Wiem, że istnieje wiele widgetów, JavaScript i Ajax, że cokolwiek się dane z Twittera. Czy jest coś, co muszę włączyć, aby to umożliwić?
Ach, na pewno jest problem z polityką bezpieczeństwa międzydomenowego. Dodano "& callback =?" do żądania GET, a teraz wszystko działa. – Zhami
Czy możesz zaktualizować pierwotny wpis z dodaną opcją oddzwaniania? - Dzięki! –
@Zhami: Jeśli odpowiedziałeś, powinieneś opublikować swoje rozwiązanie jako odpowiedź tutaj. –