[AJAX] exception setRequestHeader NS_ERROR_ILLEGAL_VALUE
Bonjour tout le monde, après avoir recherché sur Google, j'ai trouvé aucune soluce... ça me semble vachement bizarre parce que j'utilise la même methode que tout ce que j'ai vu sur internet (et même sur les tutos de developpez.com)
Mon script
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 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
| var request;
function chaineRequete() {
var queryString = "";
var frm = document.forms[0];
var nbr = frm.elements.lenght;
for(var i = 0; i < nbr; i++) {
if(i < nbr-1)
queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value) + "&";
else
queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value);
}
return queryString;
}
function initReq(reqType,url,isAsynch) {
var queryString = chaineRequete();
request.onreadystatechange = traiteReponse;
request.open(reqType,url,isAsynch);
request.setRequestHeader("Content Type","application/x-www-form-urlencoded; charset=utf-8");
request.send(queryString);
}
function httpRequest(reqType,url,isAsynch) {
if(window.XMLHttpRequest)
request = new XMLHttpRequest();
else if(window.ActiveXObject) {
request = new ActiveXObject("Msxml2.XMLHTTP");
if (!request)
request = new ActiveXObject("Microsoft.XMLHTTP");
}
if (request)
initReq(reqType,url,isAsynch);
else
alert("Navigateur incompatible AJAX");
}
function envoiDonnees() {
var url = "xml_convert.php";
httpRequest("POST",url,true);
}
function traiteReponse() {
if(request.readyState == 4 && request.status == 200)
alert(request.responseText);
else if(request.readyState == 4)
alert("Un problème est survenu durant la communication avec le serveur");
} |
xml_convert.php
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?php
header("Content-Type: text/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
echo '<params>'."\n";
foreach($_POST as $type => $champ)
echo '<'.$type.'>'.$champ.'</'.$type.'>'."\n";
echo '</params>'."\n";
?> |
Me renvoie une erreur:
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.setRequestHeader]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: http://192.168.1.5/hacks-ajax/hack2/post-query.js :: initReq :: line 23" data: no]
Si je commente la ligne "setRequestHeader" plus d'erreur mais les données ne sont pas transmises :?
Je débute vraiment en Ajax (d'ailleurs ce code vient d'un exercice que je fais depuis un livre) donc j'ai ptet une mega erreur mais je vois pas où...
HELP (et merci d'avance :aie: )
Probleme avec setRequestHeader
Bonjour tout le monde,
Je suis nouveau ici, et voici pour vous ma première demande.
En fait j'ai créée une classe (en se basant sur une autre fonction qui fait appelle d'une manière automatique à un constructeur) dans celle-ci à un moment je fait appelle à la méthode setRequestHeader car je veux envoyer une requête Ajax vers un script serveur en php.
Donc j'ai un code de ce genre:
this.transport.setRequestHeader('Content-type',this.options.encodeType+';encoding='+this.options.encoding);
Alors j'ai eu l'erreur suivante sous firefox:
0x80004005(NS_ERROR_FAILLURE)[nsIXMLHTTPRequest.setRequestHeader]...
Sachez bien que dans mon objet options est de cette forme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| options={
method:'post',
contentType:'application/x-www-form-urlencoded',
encoding:'UTF-8',
parameters:'',
onComplete:function() { traitement... }
} |
Donc ma question concerne le fait que j'ai une erreur suite à l'utilisation de setRequestHeader
Merci beaucoup d'avance.
Simon