Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ajax nie dziala pod FF
kufalo
post 19.07.2008, 19:15:06
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 2
Dołączył: 24.08.2005

Ostrzeżenie: (0%)
-----


Witam,
potrzebuje synchronicznie odpytac serwer

Kod
<script>

  r=new XMLHttpRequest()
  r.onreadystatechange=function(){if(r.readyState==4)alert(r.responseText)}
  r.open('GET','1.txt',false)
  r.send(null)

</script>


nie wiem czemu pod FF 3.0.1 nie dziala, pozostale wyswietlaja okienko alerta.
Go to the top of the page
+Quote Post
nexis
post 21.07.2008, 09:54:50
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


Obiekt XMLHttpRequest() nie jest uniwersalny dla wszystkich przeglądarek, więc może spróbuj użyć jQuery:

Kod
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
var GET = {
   init : function(){
         var request = $.ajax({
            url: "1.txt",
            async: false
         }).responseText;
         alert(request);
      }
   };
$(document).ready(function(){
   GET.init();
});
</script>


Ten post edytował nexis 21.07.2008, 10:15:10


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Luciano
post 21.07.2008, 15:23:23
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 1
Dołączył: 26.07.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


chyba Asynchronicznie biggrin.gif


--------------------
Go to the top of the page
+Quote Post
AjaxSrajax
post 21.07.2008, 17:46:27
Post #4





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 22.03.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


@luciano chyba jednak synchronicznie - skrypt czeka aż dane się całe ściągną, asynchronicznie - nie.

@nexis Obiekt XMLHttpRequest() nie jest uniwersalny dla wszystkich przeglądarek

nie no, bez jaj, rozmawiamy oo ff 3 biggrin.gif, a nie o przeglądarce z Marsa, ale jak faktycznie nie obsługuje xhr-a to Cie przeprosze, bo przyznam ze jeszcze nie testowalem na ff3 ;O

nie zgubiłeś nawiasów klamrowych i średnika (opcjonalnie z tego co wiem) w IF? : r.onreadystatechange=function(){if(r.readyState==4)alert(r.responseText)}

nie powinno być:

r.onreadystatechange=function(){
if(r.readyState==4) {
alert(r.responseText);
}
};

Aż dziw, że działa w innych, albo o czymś nie wiem...
?
Go to the top of the page
+Quote Post
paziek
post 23.07.2008, 22:11:10
Post #5





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


JavaScript (i nie tylko) pozwala na opuszczanie nawiasów klamrowych, jeśli masz zamiar wykonać tylko jedno polecenie (tutaj akurat alert).
Ba, nowsze VM javascriptu pozwalają na opuszczanie nawiasów klamrowych w funkcjach (lambda).

No i rozwiązanie problemu:

  1. <script>
  2.  
  3.  r=new XMLHttpRequest()
  4.  r.open('GET','gaga',false)
  5.  r.send(null)
  6.  alert(r.responseText)
  7.  //if(r.status == 200)alert(r.responseText)//warto korzystać z status, aby upewnić się, że plik, strona czy cokolwiek tam byś GETował dały nam dobrą odpowiedź, w tym przypadku "OK 200"
  8.  
  9. </script>


W synchronicznych XHR nie używasz onreadystatechange, bo .. jest synchroniczne - nie trzeba! tongue.gif
http://developer.mozilla.org/en/docs/XMLHttpRequest
Cytat
Note: You should not provide an onreadystatechange handler for synchronous requests. If you do, versions of Firefox prior to version 3 call the handler anyway. Firefox 3 blocks until the request is completed (as in the example above). Firefox 2 provides the same behavior as long as you don't implement an onreadystatechange handler.
Go to the top of the page
+Quote Post
kubel-junior
post 1.12.2008, 15:43:37
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2008

Ostrzeżenie: (0%)
-----


witam, ja mam ten sam problem.
pod FF 3.x nie działa request = new XMLHttpRequest();
i teraz zonk bo nie wiem co zrobić...

PS. Pierwszy raz cos działa porpawnie w IE a w FF nie smile.gif lecz to pewnie jest wynik mojej niewiedzy.
Go to the top of the page
+Quote Post
nexis
post 1.12.2008, 19:05:20
Post #7





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


Cytat(kubel-junior @ 1.12.2008, 15:43:37 ) *
pod FF 3.x nie działa request = new XMLHttpRequest();
i teraz zonk bo nie wiem co zrobić...


Uruchom proszę poniższy plik HTML pod Firefox 3.x:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  4. <title>XMLHttpRequest</title>
  5. </head>
  6. <body>
  7. <script type="text/javascript">
  8. if (window.XMLHttpRequest) {
  9. alert("Przeglądarka obsługuje XMLHttpRequest!");
  10. } else {
  11. alert("Przeglądarka nie obsługuje XMLHttpRequest!");
  12. }
  13. </script>
  14. </body>
  15. </html>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
kubel-junior
post 1.12.2008, 23:08:35
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2008

Ostrzeżenie: (0%)
-----


dzieki za pomoc smile.gif mała literówka a ja ślepy jestem
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 06:48