Bonjour,
dans le but de faire un formulaire de contacte je me suis lancé dans l'ajax.
Le souci c'est une fois que ma fonction est lancé je ne reçois pas de réponse du serveur j'ai un jolis Aborted.
Donc le requête est bien envoyer mais c'est la réponse qui merde.

Sauf quand je mes un "alert("test");" apres "xhr.send(data);"

Voila le 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
 
function getXMLHttpRequest() {
	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 request(callback) {
 
	 nom = document.getElementById("nom").value;
	 prenom = document.getElementById("prenom").value;
	 email = document.getElementById("email").value;
	 site = document.getElementById("site").value;
	 sujet = document.getElementById("sujet").value;
	 texte = document.getElementById("texte").value;
	 verif = document.getElementById("verif").value;
 
	xhr = getXMLHttpRequest();
 
 
	data = 'nom='+escape(nom);
xhr.open("POST", "http://beta.live-linux.fr.nf/site/templates/mail.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");       
xhr.send(data);
 
xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			callback(xhr.responseText);
			document.getElementById("loed").style.display = "none";
			document.getElementById("mail").style.display = "inline";
 
		} else if (xhr.readyState < 4) {
			document.getElementById("loed").style.display = "inline";
			document.getElementById("mail").style.display = "none";
		}
		else if (xhr.status == 500 ) {
			document.getElementById("loed").style.display = "none";
			document.getElementById("mail").style.display = "inline";
		}
	};
}
 
function readData(sData) {
 
alert(sData);
}
La page en html :
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
<div id="right">
<div id="mail" >
 
<form method="post" >
<br />
	<fieldset class="connection">
	<legend>.: Mail :.</legend>
	<br />
		<table class="tableau">
			<tr>
				<td><p>Nom : </p></td>
				<td><input type="text" id="nom" /></td>
				<td><em>ereur</em></td> 
			</tr> 
			<tr>
				<td><p>Prénom : </p></td>
				<td><input type="text" id="prenom" /></td>
				<td><em>ereur</em></td>
			</tr>
			<tr>
				<td><p>E-mail : </p></td>
				<td><input type="text" id="email" /></td>
				<td><em>ereur</em></td>
			</tr>
			<tr>
				<td><p>Site internet ( facultatif ) : </p></td>
				<td><input type="text" id="site" value="http://" /></td>
			</tr>
			<tr>
				<td> <p>Sujet : </p></td>
				<td> <input type="text" id="sujet" /></td>
				<td><em>ereur</em></td>
			</tr>
		</table>
 
		<br />
			<textarea name="texte" id="texte">Taper votre texte</textarea>
	<br />
	</fieldset>
	<br/>
	<fieldset class="connection">
	<legend>.: Traitement :.</legend>
	<br />
		<center>
			<a onclick=""><img  id="image" src="http://beta.live-linux.fr.nf/site/libs/captcha/captcha.php" alt="image de protection"  /></a><br />
			<p>recopier les chifres : <input type="text" id="verif" size="10" maxlength="5" /><em> ereur</em></p>
			<p><button onclick="request(readData);">GO</button></p>
		</center>
	<br />
	</fieldset>
 
</form>
 
</div>
<div id="loed" style="display: none;">
<br/><br/><br/><br/>
<center>
<img  src="http://beta.live-linux.fr.nf/site/ajax.gif" alt="chargement"  />
<p>Envoy du mail en cours</p>
</center>
</div>
 
<div id="reusii" style="display: none;">
<br/><br/><br/><br/>
<center>
<h1>Envoy reussi</h1>
</center>
</div>
</div>
Le code php qui reçois la réponse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<?php
        echo $_POST['nom'];
?>
Pour ceux que ça peut aider ici l'adresse du formulaire : http://beta.live-linux.fr.nf/site/contact

Un grand merci de votre aide.