Używam jQuery 1.4.2 i próbuję wykonać proste żądanie AJAX. Docelowy URL zwraca ciąg JSON (sprawdziłem go za pomocą jslint). Żądanie działa w przeglądarce Firefox i Chrome, ale nie chce działać w IE8 i nie mogę określić, dlaczego. Oto połączenie:jQuery AJAX żąda niepowodzenia w IE8 z komunikatem "Błąd: tej metody nie można wywołać, dopóki nie zostanie wywołana metoda otwarta".
jQuery.ajax({
url: 'http://' + domain + '/' + 'helper/echo/',
dataType: 'json',
success: function(data) {
alert(data);
},
beforeSend: function(request, settings) {
alert('Beginning ' + settings.dataType + ' request: ' + settings.url);
},
complete: function(request, status) {
alert('Request complete: ' + status);
},
error: function(request, status, error) {
alert(error);
}
});
IE wykona wywołanie zwrotne beforeSend i wywołanie zwrotne błędu. Alarmy błąd wywołania zwrotnego z komunikatem:
Error: This method cannot be called until the open method has been called.
moja odpowiedź zwraca nagłówek z Content-Type: text/javascript; charset=UTF-8
.
Co się dzieje z IE? Uruchomiłem serwer na localhost, wysyłając żądanie od http://localhost:8080/psx do http://localhost:8080/helper. Może IE blokuje tę prośbę? Próbowałem zainstalować Fiddlera, aby analizować ruch żądania, ale nie będzie on działał na moim komputerze, ponieważ jest raczej zablokowany. Firebug mi pozwala, ale wszystko wydaje się dobre.
Dzięki za pomoc!
Spróbuj 'asynchroniczny: FALSE i spróbować jeszcze raz. –
To niestety nie miało efektu. Powinienem również wspomnieć, że stan oddzwaniania błędu jest zerowy. – checker