Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]Prosty chat w AJAXie
Forum PHP.pl > Forum > XML, AJAX > AJAX
L_Devil
Mam taki kod:

  1. var http_request = false;
  2. function makeRequest(url, params) {
  3. http_request = false;
  4. if (window.XMLHttpRequest)
  5. {
  6. http_request = new XMLHttpRequest();
  7. }
  8. else if (window.ActiveXObject)
  9. {
  10. try
  11. {
  12. http_request = new ActiveXObject("Msxml2.XMLHTTP");
  13. }
  14. catch (e)
  15. {
  16. try
  17. {
  18. http_request = new ActiveXObject("Microsoft.XMLHTTP");
  19. }
  20. catch (e)
  21. {
  22.  
  23. }
  24. }
  25. }
  26. if (!http_request)
  27. {
  28. alert("Błąd połączenia");
  29. return false;
  30. }
  31. alert("Krok1");
  32. http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  33. alert("Krok2");
  34. http_request.onreadystatechange = ShowMessage;
  35. http_request.open("POST", url, true);
  36. http_request.send(params);
  37. }
  38.  
  39. function ShowMessage()
  40. {
  41. if (http_request.readyState == 4)
  42. {
  43. if (http_request.status == 200)
  44. {
  45. shouts.innerHTML = http_request.responseText;
  46. }
  47. else
  48. {
  49. alert("Błąd pobierania danych");
  50. }
  51. }
  52. }
Podczas wykonywania wyświetla się "Krok1" (pierwszy z alertów), zaś "Krok2" już nie... wygląda na to, że funkcja wiesza się przy wykonywaniu linijki
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Czemu?
Od razu mówię, że jestem początkujący w te klocki winksmiley.jpg
mariuszn3
Korzystasz z konsoli JS w Firefoxie?
L_Devil
eeee.... że się tak głupio zapytam - co to jest? biggrin.gif

Mam konsolę Javy, ale nie js winksmiley.jpg
mariuszn3
Zainstaluj sobie rozszerzenie Wev Developer.
W konsoli JS znajdziesz informacje o wszystkich błędach JS.
L_Devil
ok, wypluło mi coś takiego:

Kod
Błąd: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.setRequestHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: http://localhost/test/city/tavern/talk :: makeRequest :: line 181"  data: no]
mariuszn3
Mi wiele ten błąd nie mówi.. ale Ty mając dostęp do kodu, powinieneś szybko zlokalizować co go wywala smile.gif
L_Devil
Ja już wiem - i nawet napisałem to w pierwszym poście winksmiley.jpg

Linijka:

Kod
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


Tylko co ja mam z tym zrobić? Co tutaj jest nie tak?
mariuszn3
ok.. wysiłem się trochę bardziej i znalazłem przyczynę ;-)
Zanim będziesz dodawał jakiekolwiek nagłówki musisz otworzyć transport funkcją open() (wbrew pozorom to nie otwiera żadnego połączenia)
Czyli po prostu przesuń linijkę z zawołanie do open() przed setRequestHeader()
L_Devil
Masz u mnie pół litra rozpuszczal... tfu, coli biggrin.gif (piwa nie daję, bo możesz być niepełnoletni biggrin.gif ). Dorzucę jeszcze litr, jak mi powiesz co zrobić, żeby nie krzaczkował winksmiley.jpg
mariuszn3
Dokument, który przesyłasz w odpowiedzi na ajaxa, musi nieść ze sobą informację o tym w jakim kodowaniu znaków jest napisany ;-)
L_Devil
dokument wysyłał - problem miałem bardziej w przesyłaniu danych na serwer... ale wpisałem
  1. <?php
  2. $message=iconv('utf-8','iso-8859-2',$message);
  3. ?>
i problem zniknął winksmiley.jpg Anyways wielkie dzięki za zainteresowanie! biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.