![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 16.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
przeszukałem już dziesiątki stron, zarówno polsko jak i obcojezycznych i nie umiem znalezc rozwiazania dreczacego mnie problemu... Otoz pisze sobie klase obslugi AJAXa i pod Opera nie dziala mi pewna rzecz, ktora w/g dokumentacji powinna dzialac bez zadnych problemow... a mianowicie dwa przykladowe fragmenty kodu (tylko to co jest wazne): CODE plik test_ajax.php: <script type="text/javascript" src="myAjax.js"></script> <script type="text/javascript"> </script> </head> <body onload="gofunction();"> </body> plik myAjax.js: function myAjax(){ function manage_return_response(){ document.write(myRequest.readyState+" < hr/>"); //alert(myRequest.readyState); //if(myRequest.readyState == 4) { //// if server HTTP response is "OK" //if(myRequest.status == 200) { //alert("OK hehe"); //} else { //// issue an error message for any //// other HTTP response //alert("An error has occurred: " + myRequest.statusText); //} //} //alert(myRequest.responseText); } var argumenty = new Array(); argumenty = arguments; var myRequest = new_myAjax_request(); document.write(myRequest+" < hr />"); myRequest.open(argumenty[0].metoda,argumenty[0].adres,'true'); if (argumenty[0].metoda == 'GET'){ } if (argumenty[0].metoda == 'POST'){ //create parameters string from parametry array var paramsString=''; for (i=0;i<argumenty[0].length; i=i+2){ paramsString += argumenty[0].parametry[i] + "=" + argumenty[0].parametry[i+1]; if (i+1 != argumenty[0].parametry.length-1){ paramsString += "&"; } } myRequest.onreadystatechange = manage_return_response; myRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); myRequest.send(paramsString); } } I teraz w Operze odpowiedz wyglada tak: START FUNCTION [object XMLHttpRequest] 2 END FUNCTION natomiast pod Firefoxem dziala tak: START FUNCTION [object XMLHttpRequest] 1 END FUNCTION2 3 4 I teraz główne pytanie: jakim k**** cudem Opera wykrywa tylko stan 2 (udalo mi sie jeszcze uzyskac stan 3) a Firefox, tak jak powinien wykrywa wszystkie stany? I jak sprawic, by Opera wykrywala to co powinna? Wersja Opery: Version 9.23 Build 660 Platform Linux System i686, 2.6.22-ARCH Qt library 3.3.8 Java Java Runtime Environment installed natomiast firefoxa: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070801 BonEcho/2.0.0.6 Czy ktoś jest w stanie mi pomoc? Z gory dziekuje za wszelkie konstruktywne rady... Ok, dzieki irc'owi znalazlem rozwiazanie: wystarczy dodac myRequest.setRequestHeader("Content-length", paramsString.length); przed myRequest.send(paramsString); i dziala na Operze (w zasadzie dalej mi nie wykrywa stanu 1 ale to mi narazie nie potrzebne :] ) Ten post edytował przczp 17.09.2007, 20:36:09 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 04:24 |