[AJAX] AJAX ne passe pas sur IE
Bonjour
le code que je vous présente est tiré de deux tutorial ajax sur dev.com
index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Galerie Photos</title>
<script type="text/javascript" src="js/xhr.js"></script>
<script type="text/javascript" src="js/loadXML.js"></script>
<script type="text/javascript">
loadXML() ;
</script>
</script>
</head>
<body>
<div id="content"><div>
</body>
</html> |
xhr.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function getXHR() {
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr ;
} |
loadXML.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| function loadXML() {
xhr = getXHR() ;
var url = "js/dvd.xml";
xhr.onreadystatechange = handleHttpResponse;
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send();
}
function handleHttpResponse() {
if(xhr.readyState == 4 && xhr.status == 200) {
response = xhr.responseXML;
var items = response.getElementsByTagName("item");
var html = '';
count = items.length;
for(i = 0; i < count; i++) {
alert(i);
html += '<div class="item">';
html += '<h1>' + items[i].getElementsByTagName("title")[0].firstChild.nodeValue + '</h1>';
html += '<div class="author">Réalisateur : ';
html += items[i].getElementsByTagName("director")[0].firstChild.nodeValue + '</div>';
html += '<div class="price">Prix : ';
html += items[i].getElementsByTagName("price")[0].firstChild.nodeValue + ' </div>';
html += '</div>';
}
document.getElementById('content').innerHTML += html;
}
} |
dvd.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?xml version="1.0" encoding="utf-8"?>
<dvd>
<item>
<title>Princesse Mononoké</title>
<director>Hayao Miyazaki</director>
<price>14,99</price>
</item>
<item>
<title>Mon voisin Totoro</title>
<director>Hayao Miyazaki</director>
<price>19,99</price>
</item>
<item>
<title>Blood, The Last Vampire</title>
<director>Hiroyuki Kitakubo</director>
<price>11,99</price>
</item>
</dvd> |
Le code ci-dessus (qui affiche le contenu du fichier XML dans la page) fonctionne correctement sous FF (3.5.2) mais aucunement sous IE (8.0).
quelqu'un aurait une idée ?
J'ai lu sur le net que pour IE il fallait modifier le header de la page et forcer la page à ne rien mettre en cache mais cela ne fonctionne pas
D'avance merci
Nicolas