2010-05-13 5 views
1

Comment utiliser XMLHttpRequest.send()?Utilisation de XMLHttpRequest.send() en JavaScript

Mon code JavaScript est comme suit:

str_xml+="<xml_to_be_submitted><request_xml><client_id>"+document.frmCallEntryAdd.cboCLIENT.options[document.frmCallEntryAdd.cboCLIENT.selectedIndex].value+"</client_id></request_xml></xml_to_be_submitted>"; 
    var obj_http=new ActiveXObject("Microsoft.XMLHTTP"); 
    var str_url="ClientModuleFetch.aspx"; 
    var str_http_method="post"; 
    obj_http.open(str_http_method,str_url,false); 
    obj_http.SetRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
    obj_http.send(str_xml); 
    var str_reply=obj_http.ResponseText; 


    var xmlResponse = str_reply; 

    var objXmlDOM=new ActiveXObject("Microsoft.XMLDOM"); 

tout organisme peut me dire ce que je fais mal?

Répondre

1

Pour un, votre méthode ne fonctionnera que dans IE (J'espère que ce n'est pas pour un site Web public). Une deuxième erreur que je peux repérer est que vous avez épelé SetRequestHeader avec une majuscule S. Il est censé être setRequestHeader.

Pourriez-vous envoyer exactement le message d'erreur (avec le numéro de ligne) que vous obtenez, le cas échéant?

0

Vos données affichées ne sont pas application/x-www-form-urlencoded, qui ressemble à ceci a=b&c=f.

Vos données publiées sont soit application/xml soit text/xml, ce qui n'est généralement pas utilisé avec XMLHttpRequest sauf si vous construisez manuellement des paquets SOAP.

Je suppose que vous appelez un point de terminaison de service activé par script qui peut accepter les paramètres codés en url, de sorte que le fichier XML construit manuellement n'est peut-être pas la donnée appropriée à publier. Si ce n'est pas le cas, vous devrez explorer le coin spécial des hades réservé à ceux qui insistent pour appeler SOAP depuis JavaScript. Je ne t'envie pas. ;-)

Le retour, d'autre part, est peut-être XML que vous aurez besoin d'analyser. Je suggère d'utiliser une méthode plus compatible avec les navigateurs croisés pour la construction XMLHttpRequest ainsi que l'analyse XML, car votre code semble être centré sur IE.

De plus, comme indiqué ailleurs, vous avez une erreur typographique. SetRequestHeaders doit être setRequestHeaders.

+0

Pouvez-vous suggérer le bon moyen d'envoyer (code) mon str_xml pour obtenir une réponse xml ..... – Harun

+0

@harun - avant que je puisse le faire, je devrais savoir quel type de service vous appelez. par exemple. est-ce un webservice asp.net (avec l'attribut scriptservice facultatif), le service wcf ajax activé, un service de soap arbitraire que vous n'avez aucun contrôle sur etc ... –

+0

Salut, En fait, j'utilise le javaScript avec asp.net (il est une ancienne application, peut-être utiliser le service web asp.net). Je veux juste envoyer un ID via une méthode POST à ​​une autre page où je récupère un ensemble d'enregistrements à partir de DB (pour éviter l'actualisation de la page). J'ai besoin d'obtenir ces enregistrements comme réponse xml. Je suis familier avec l'utilisation de la méthode page pour faire cette recherche dans la même page sans actualiser la page. Mais je veux juste savoir de l'autre côté. – Harun

Questions connexes