Bonjour,


Je travaille en ce moment sur des requêtes ajax, sur un serveur de test tout fonctionne parfaitement.

Je décide de livrer mon travail sur le serveur de prod... Après plusieurs cliques sur l'action qui déclenche les requêtes, sa casse. Ainsi, cela fonctionne en moyenne 2 à 3 fois après la requête se perd et évidemment j'ai le droit à un loading infini.

J'utilise firebug comme débug, j'ai constaté l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Erreur d'analyse XML : aucun élément trouvé Emplacement : moz-nullprincipal:{9703863c-98f8-534e-99c5-fd40e2a8ceec} Numéro de ligne 1, Colonne 1 :
 
^
Après quelques recherches, j'ai cru comprendre cela peut être du à un problème de cross domain...mais je ne suis pas trop sur...

Voilà mon code (abrégé) js :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/////////////////////////////////////////
function getXMLHttpRequest() {
	var xhr = null;
 
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
 
	return xhr;
}
/////////////////////////////////////////
function go(param1,param2,etc....) {
 
 
function request(url,callback,rqt) {
        if (xhr && xhr.readyState != 0) {
		alert("Attendez l'exécution de la requête...");
		return;
	}
 
		function detruire_xhr(){
		if(typeof(xhr)!='undefined')
		{
			xhr.abort();
			delete xhr;
		}
	}
 
var xhr = getXMLHttpRequest();
var retardateur;
var verif;
 
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			callback(xhr.responseText);
 
				detruire_xhr();
				verif=true;
				clearTimeout(retardateur);
 
		} else if (xhr.readyState < 4){
 
			verif=false;
			if(rqt=="rqt1"){
			document.getElementById("sourceDiv1").innerHTML="<span id='loading_changeSize'></span>";
 
			}
 
				retardateur=setTimeout(function() {
 
				if(!verif){
				xhr.abort();
				location.reload(); 
				}
 
				}, 10000); // 10 second
		}
 
	};	
 
	xhr.open("POST", url, true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	if(rqt=="rqt1"){
	 xhr.send("id="+id+"&param="+param+"&etc="+etc);
	}
	if(rqt=="rqt2"){
 
	xhr.send("id="+id+"&param="+param+"&etc="+etc);
 
	}
 
 
 
 
}
 
 
function callback1(data) {
 
if(data!='') {
var obj=document.getElementById('sourceDiv1'); 
obj.innerHTML=data;
}
request("ajax2.php",callback2,"rqt2");
 
}
 
function callback2(data) {
 
if(data!='') {
var obj=document.getElementById('sourceDiv2'); 
obj.innerHTML=data;
}
request("ajax3.php",callback3,"rqt3");
 
}
 
etc...
 
request("ajax1.php",callback1,"rqt1");
 
 
}
Merci d'avance pour votre aide.