Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] i IE
peter13135
post
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Wiem, że nie warto wyważać otwartych drzwi. Nie ma sensu zajmować się "suchym" ajaxem, skoro istnieją frameworki jak jQuery.
Naukę tego frameworka mam zamiar rozpocząć w niedługim czasie, głównie z powodu... że nie działa mi AJAX pod badzIEwiem.
Zanim jednak będe mistrzem jQuery, może mi ktoś powiedzieć, czy jest jakiś uniwersalny sposób na to by ajax działał pod ie ?
mam taki kod i działa on pięknie pod wszystkim oprócz IE.
Tutaj przykład : http://ph.xaa.pl/laczek.ath.cx .

(oczywiście javascript, ale chyba tagi php dobrze kolorują (IMG:style_emoticons/default/smile.gif) )
  1. var xmlhttp;
  2. if (window.XMLHttpRequest)
  3. {// code for IE7+, Firefox, Chrome, Opera, Safari
  4. xmlhttp=new XMLHttpRequest();
  5. }
  6. else
  7. {// code for IE6, IE5
  8. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  9. }
  10. xmlhttp.onreadystatechange = function()
  11. {//Call a function when the state changes.
  12. if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
  13. {
  14. eval(xmlhttp.responseText);
  15. }
  16. }
  17.  
  18. function ajax_post(url, params, get)
  19. {
  20. ajax(url, params, get);
  21. }
  22.  
  23. function ajax(url, params, get)
  24. {
  25. xmlhttp.abort();
  26. if (typeof(params)=='object')
  27. {
  28. var newParams='';
  29. for (var key in params)
  30. {
  31. newParams += '&' + key + '=' + encodeURIComponent(params[key]) ;
  32. }
  33. params = newParams;
  34. }
  35. if (typeof(get)=='object')
  36. {
  37. var newGet='';
  38. for (var key in get)
  39. {
  40. newGet += '&' + key + '=' + encodeURIComponent(get[key]) ;
  41. }
  42. get = newGet;
  43. }
  44. xmlhttp.open("POST", url + '?ajax=1&' + get, true);
  45. xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  46. xmlhttp.setRequestHeader("Content-length", params.length);
  47. xmlhttp.setRequestHeader("Connection", "close");
  48. xmlhttp.send(params);
  49. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Hmmm... nie wiem po co Ci te wszystkie dodatkowe nagłówki jak content-length czy connection:close (IMG:style_emoticons/default/smile.gif) może to coś psuje. Nie widzę tutaj na pierwszy rzut oka błędu żadnego... Proponuje jednak wycofać się z użycia tych nagłówków i metody ABORT() (IMG:style_emoticons/default/wink.gif) Możliwe, że badzIEwie ma z nią problem

Ja osobiście używam innego podejścia i to działa ale twoje też powinno

[JAVASCRIPT] pobierz, plaintext
  1. function getXMLHttpRequest()
  2. {
  3. try
  4. {
  5. var returnObj = new XMLHttpRequest();
  6. }
  7. catch(e)
  8. {
  9. try
  10. {
  11. var returnObj = new ActiveXObject("Microsoft.XMLHTTP");
  12. }
  13. catch(e)
  14. {
  15. alert('Your browser is not compatible with AJAX!');
  16. }
  17. }
  18.  
  19. return returnObj;
  20. }
  21.  
  22. var xmlHttp = getXMLHttpRequest();
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Sephirus 29.06.2011, 20:11:15
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: 22.08.2025 - 16:42