Page 1 sur 1

Effacer xhr.responseText

Publié : 05 mai 2010, 15:29
par Lcf.vs
Bonjour,

Pour les besoins d'un de mes scripts, au sein-même de la fonction de traitement des évènements d'une requête AJAX, je voudrais pouvoir vider le xhr.responseText.

Comme cette propriété est en lecture seule, il faudrait que je la redéfinisse.

Là où je coince, c'est que ne sachant comme elle est développée à l'origine, je ne vois pas du tout comment la réécrire :(

Code : Tout sélectionner

<script type="text/javascript">
	function xhr_create(){
		var obj_xhr=false;
		try{
			try{
				obj_xhr=new opera.XMLHttpRequest();
			}
			catch(e){
				obj_xhr=new XMLHttpRequest();
			}
		}
		catch(e){
			try{
				obj_xhr=new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(e){
				obj_xhr=new ActiveXObject('Msxml2.XMLHTTP');
			}
		}
		return obj_xhr;
	}
	function xhr_send(xhr_data){
		var Obj_xhr=xhr_create();
		Obj_xhr.onreadystatechange=function(){
			if(Obj_xhr.readyState==3){
				alert(Obj_xhr.responseText);
			}
		}
		Obj_xhr.open('POST','http://www./mondomaine/.com/sleep.php',true);
		Obj_xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		Obj_xhr.send(xhr_data);
	}
	window.onload=function(){xhr_send(null);};
</script>

Code : Tout sélectionner

<?php
	header("Access-Control-Allow-Origin: *");
	echo 1;
	sleep(10);
	echo 2;
	sleep(10);
	echo 3;
?>
Déjà, ça ne fonctionne pas sous IE (les données nécessaires pour cette opération ne sont pas encore disponibles)

Sous Firefox, ça tourne mais il me renvoie 1, puis 12, puis 123 alors que je voudrais qu'il renvoie 1, puis 2, puis 3

J'ai trouvé [lien url="http://code./google/.com/p/xmlhttpreque ... loads/list"]une solution qui réécrit entièrement la fonction xhr[/lien] mais ça ne tourne pas sous IE et sous Firefox, ça me renvoie juste 1

Auriez-vous des idées, svp?

Re: Effacer xhr.responseText

Publié : 05 juin 2010, 20:38
par lpgc
peut-être utile !? ... http://www.w3schools.com/ajax/ajax_examples.asp

il me semble que le responseText n'est utile que si

if (xmlhttp.readyState==4 && xmlhttp.status==200)