Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Ajax status = 0
-ratatui-
post
Post #1





Goście







Dawno nie pisałem stron, teraz kiedy potrzebuję prostą stronę zrobić to mam jakiś dziwny problem z AJAXem czysto JSowym. Pole readyState obiektu ajax równa się 4 tak jak ma być, ale pole status = 0. Co zrobić by temu zaradzić?

  1. <!DOCTYPE html>
  2. <head>
  3. <title>Title of the document</title>
  4. <script type="text/javascript">
  5. var State = { // enumerator JS'owski. To są stany naszej aplikacji HTMLowskiej
  6. Input: 0,
  7. ShowingForm: 1
  8. };
  9.  
  10. var applicationState = State.Input; // na początku stan Input, bo chcemy wprowadzić dane
  11. var frame;
  12.  
  13. function init() {
  14. frame = document.getElementById("frame");
  15. renderPage();
  16. }
  17.  
  18. function getAJAXObject() {
  19. if(window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
  20. return new XMLHttpRequest();
  21. else // code for IE6, IE5
  22. return new ActiveXObject("Microsoft.XMLHTTP");
  23. }
  24.  
  25. function renderPage() {
  26. switch(applicationState) {
  27. case State.Input:
  28. var ajax = getAJAXObject();
  29. ajax.onreadystatechange = function() {
  30. if(ajax.readyState == 4 && ajax.status == 200) {
  31. frame.innerHTML = "Wczytano";
  32. } else frame.innerHTML = "Problem " + ajax.readyState + "; " + ajax.status + "; " + ajax.statusText;
  33. }
  34. ajax.open("GET", 'page_input.html', true);
  35. ajax.send(null);
  36. break;
  37. case State.ShowingForm:
  38. alert("xd");
  39. break;
  40. }
  41. }
  42. </script>
  43. body { margin: 0; padding: 0; }
  44. #frame { width: 800px; height: 600px; border: 1px solid black; margin: 100px auto 0 auto; }
  45. </style>
  46. </head>
  47. <body onload="init();">
  48. <div id="frame"></div>
  49. </body>
  50. </html>
Go to the top of the page
+Quote Post
-ratatui-
post
Post #2





Goście







Oczywiście katalogi są w porządku:
(IMG:http://fooh.pl/pokaz/3923707798.png)

O co tutaj chodzi? Rozwiązanie pewnie jest banalne ale długo nie siedziałem w webie i patrzę na to i nie wiem co czynić ;d.
Go to the top of the page
+Quote Post
-ratatui-
post
Post #3





Goście







Przerobiłem to na jQuery i to samo. Dodatkowo tutaj bład się pokazuje 404 error. A żeby było jeszcze ciekawiej to nawet w dokumentacji jquery tam gdzie jest przykład poprawnego wczytania z pliku w podglądzie jest error.
http://api.jquery.com/load/
W "Example: Display a notice if the Ajax request encounters an error." jest przykład kodu, a pod kodem jest Demo i jest ono wadliwe.
  1. Successful Response (should be blank):
  2. Error Response:
  3. Sorry but there was an error: 404 Not Found
Go to the top of the page
+Quote Post
owca_82
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

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


Wszystko działa jak należy tylko:

1. nie uruchamiaj stronki bezpośrednio z dysku, tylko wrzuć na jakiś lokalny serwer i tam odpal.
2. w pliku pobieranym skorzystaj z echo, ewentualnie dodaj do tego co masz deklarację XML'a

page_input.php =>
Kod
<?php echp '<p>Pobrany tekst</p>'; ?>

page_input.xml =>
Kod
<?xml version="1.0"?>
<p>Pobrany tekst</p>


3. skorzystaj z metody responseText =>
Kod
frame.innerHTML = "Wczytano"+ ajax.responseText;

Go to the top of the page
+Quote Post
-ratatui-
post
Post #5





Goście







Właśnie nie chcę PHP ani serwera bo to ma być prosta stronka odpalana z dysku. Ale już sobie poradziłem. Dodałem treści podstron na głównej stronie w divach z display: none i odpowiednio włączam div który chce. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 6.10.2025 - 19:05