Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] i IE
Forum PHP.pl > Forum > XML, AJAX
peter13135
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ą 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. }
Sephirus
Hmmm... nie wiem po co Ci te wszystkie dodatkowe nagłówki jak content-length czy connection:close 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() 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
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.