Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1683 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  AJAX et firefox j'arrive pas a envoyer une requete POST

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

AJAX et firefox j'arrive pas a envoyer une requete POST

n°1355934
Aquarius_2​8
Posté le 28-04-2006 à 13:43:15  profilanswer
 

Voilà je veut envoyé un flux XML vers un serveur (google en l'occurence),
 
Mon bout de code fonctionne correctement sur IE, mais pour Firefox et Opera ca ne marche pas !
 
Que faire !
 

Code :
  1. function launchCheck()
  2. {
  3.     text = document.getElementById("XtractText" ).innerHTML;
  4.     xmlReponseText = '<?xml version="1.0" encoding="utf-8"
  5. ?><spellrequest textalreadyclipped="0" ignoredups="0"
  6. ignoredigits="1" ignoreallcaps="1"><text>' + text +
  7. '</text></spellrequest>';
  8.     var req = null;
  9.         var req = getXMLSpellCheck(req);
  10.         var monURL = "http://www.google.com/tbproxy/spell?lang=fr";
  11.         alert(monURL);
  12.         req.open("POST", monURL, true);
  13.         req.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
  14.     req.send(xmlReponseText);
  15. }
  16. //on fait un simple alert du flux recus!
  17. function getXMLSpellCheck(parHTTP)
  18. {
  19.     if(window.XMLHttpRequest)
  20.     {
  21.         // Firefox et autres
  22.         parHTTP = new XMLHttpRequest();
  23.     }
  24.     else if(window.ActiveXObject)
  25.     {
  26.         // Internet Explorer
  27.         try
  28.         {
  29.             parHTTP = new ActiveXObject("Msxml2.XMLHTTP" );
  30.         }
  31.         catch (e)
  32.         {
  33.             parHTTP = new ActiveXObject("Microsoft.XMLHTTP" );
  34.         }
  35.     }
  36.     else
  37.     {
  38.         // XMLHttpRequest non supporté par le navigateur
  39.         alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  40.         window.history.back();
  41.         parHTTP = false;
  42.     }
  43.     parHTTP.onreadystatechange = function()
  44.     {
  45.         if(parHTTP.readyState == 4)
  46.         {
  47.             if(parHTTP.status == 200)
  48.             {
  49.                 alert(parHTTP.responseText);
  50.             }
  51.             else
  52.             {
  53.                 alert("Error: returned status code " + parHTTP.status + " " + parHTTP.statusText);
  54.             }
  55.         }
  56.         else if(parHTTP.readyState == 3)
  57.         {
  58.         }
  59.     };
  60.     return parHTTP;
  61. }

 


Comme vous pouvez le constater il n'y a rien de sorcier.
 
Mais Firefox me renvoie l'erreur suivante
 

Code :
  1. Erreur : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open

 


Que faire ??

mood
Publicité
Posté le 28-04-2006 à 13:43:15  profilanswer
 

n°1355945
Aquarius_2​8
Posté le 28-04-2006 à 13:57:05  profilanswer
 

J'essay plein de truc mais le pire c'est que je sais que c'est possible à utiliser vu que ca marche sur des exemples du web !

n°1355948
anapajari
s/travail/glanding on hfr/gs;
Posté le 28-04-2006 à 14:00:25  profilanswer
 

Euh je comprends pas trop 2/3 lignes:

Code :
  1. var req = null;
  2. var req = getXMLSpellCheck(req);


Donc ça, explication, plz?
Surtout que derrière tu fais

Code :
  1. function getXMLSpellCheck(parHTTP)
  2. {
  3.    if(window.XMLHttpRequest)
  4.    {
  5.        // Firefox et autres
  6.        parHTTP = new XMLHttpRequest();
  7.    }
  8.    ...
  9.    return parHTTP;
  10. }


normalement ça doit "quand même" marcher mais bon s'pas terrible terrible.
 
Pourquoi n'utilises tu pas une librairie de connexion kivabien?

n°1355953
Aquarius_2​8
Posté le 28-04-2006 à 14:03:31  profilanswer
 

Cela te permet d'instancier l'objet req suivant le navigateur.
Je met ça sous forme de fonction c'est plus simple à utiliser c'es tout :)
Sinon c'est quoi tes librairies de connexion ?

n°1355969
anapajari
s/travail/glanding on hfr/gs;
Posté le 28-04-2006 à 14:17:43  profilanswer
 

Aquarius_28 a écrit :

Cela te permet d'instancier l'objet req suivant le navigateur.


Nan pas la ...

Code :
  1. var req = null;


Tu définis(c'est à ça que sertvar) une variable "req" à laquelle tu attribues la valeur 'null'.

Code :
  1. var req = getXMLSpellCheck(req);


Tu redéfinis ta variable req en lui mettant la valeur de retour de la fonction getXMLSpellCheck qui prend comme arguement req ( qui vaut ici null)

Code :
  1. function getXMLSpellCheck( parHttp){
  2. ...
  3. parHttp = unTruc; //en fonction du navigateur
  4. ...
  5. return parHttp;
  6. }


Te retourne un object xmlHttpRequest, sauf que cet objet tu le mets dans le paramètre passé à la dite fonction.
Encore une fois ça doit marcher, mais ça ne traduit pas une très compréhension de ce que tu fais :o

Aquarius_28 a écrit :

Je met ça sous forme de fonction c'est plus simple à utiliser c'es tout :)


Nan pas la ...
 

Aquarius_28 a écrit :

Sinon c'est quoi tes librairies de connexion ?


Yahoo, très bien mais un peu complexe: http://developer.yahoo.com/yui/connection/index.html
XHConn, super simple: http://xkr.us/code/javascript/XHConn/


Message édité par anapajari le 28-04-2006 à 14:19:03
n°1355992
Aquarius_2​8
Posté le 28-04-2006 à 14:37:43  profilanswer
 

Oki je regarde !
Mais là en fait je viens d'identifier le probleme, sous Firefox il n'accepte pas de lancer une requette que une adresse distante ...
Il marchera très bien sur une adresse local par contre ...

n°1355997
Bidem
Posté le 28-04-2006 à 14:41:26  profilanswer
 

Le passage des parametres en javascript, ce fait par valeur donc si ta fonction getXMLSpellCheck "tombe en marche" c'est uniquement parce que tu fais un return.
 
En fait tu n'a pas besoin de parametre à ta fonction :

Code :
  1. function getXMLSpellCheck(){
  2.   // variable locale
  3.   var parHttp;
  4.   ...
  5.   parHttp = unTruc; //en fonction du navigateur
  6.   ...
  7.   return parHttp;
  8. }


 

n°1356011
Aquarius_2​8
Posté le 28-04-2006 à 14:56:38  profilanswer
 

Bon je viens d'utiliser la librairie XHConn mais pareil ca ne marche pas ...
Sous Opera :
[Error:name: Error message: Security violation]
 
sous Firefox :
Permission refusée d'appeler la méthode XMLHttpRequest.open  
 
Perso je pense que c'est du au fait que je veut interroger une url distante ... paske en utilisant comme url une url local host là ca marche.


Message édité par Aquarius_28 le 28-04-2006 à 14:56:59
n°1356114
Aquarius_2​8
Posté le 28-04-2006 à 16:28:17  profilanswer
 

Bon pour résudre ça finalement j'ai fait un pseudo proxy ki vas chercher le flux xml distant et ki me le renvoi au client ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  AJAX et firefox j'arrive pas a envoyer une requete POST

 

Sujets relatifs
envoyer une donnée dans excel depuis une textboxfirefox ou internet-explorer la et la question ..
Bloquer le POST + erreur avec WebUIValidation.jstransformer du GET en du POST
Pb popup Flash sous IE et pas Firefox...[SAGE] requete sql via odbc sous sage gestion commercial ligne 100
overflow-y et firefox[MFC et ODBC] Requete SQL
j'arrive pas à creer mon thread[JSP/Servlet] Comment envoyer une string sans passer par des javabean
Plus de sujets relatifs à : AJAX et firefox j'arrive pas a envoyer une requete POST


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR