2009-11-07 7 views
1
var url="display.php?vote="+grade; 
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true) 
xmlHttp.send(null) 
} 
} 

function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
{ 
document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
} 
} 

Ce morceau de code ne parvient pas à envoyer la demande. Comment créer un xmlHttp correctement?Comment créer une requête xmlhttp?

+0

double exact: http://stackoverflow.com/questions/1620305/send-an-http-request –

+0

Retagged '' js' à javascript' car il a beaucoup plus de couverture. – BalusC

Répondre

0

Voici une solution "80%".

function GetXHR() 
{ 
    try 
    { 
    if (window.XmlHTTPRequest) 
     xmlHttp = new XmlHTTPRequest() 
    else 
     xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.3.0") 
    } 
    catch(e) { } 
} 

var xmlHttp = GetXHR() 
if (xmlHttp) 
{ 
    // Proceed with xmlHttp usage. 
} 

Modifier

Remarque J'ai tendance à éviter le vieux ProgID « Microsoft.XMLHTTP » en faveur de celui que je l'ai utilisé parce que plus tard ProgID a un comportement plus prévisible et est toujours aussi un peu plus garantir. Cependant, si vous voulez une plus grande compatibilité avec les machines Windows très anciennes (je parle de problèmes de support), vous pouvez utiliser l'ancienne dans votre cas spécifique.

+0

Quelle est la solution à 100%? – Mask

+0

En utilisant 'jQuery.ajax()'. – BalusC

+0

@Mask: En fait, c'est plus comme 99% mais je fais référence à la règle "80/20". Ce petit morceau de code (les 20% d'effort) résout le problème pour la grande majorité des cas (les 80%). En fait, il fonctionnera sur tous les navigateurs courants. Il échouerait, disons, une machine Windows 95 sous IE5. – AnthonyWJones

0

L'URL relative peut être incorrecte par rapport au contexte actuel. Difficile à dire sur la base des informations affichées. Vous devez examiner le statut XHR pour plus de détails.

Au moins, w3schools.com a un bon tutoriel de base Ajax. Après avoir compris comment Ajax/Javascript fonctionne sous le capot, je vous recommande de continuer avec jQuery, il prend tout le travail du navigateur méchant de vos mains.

Bonne chance.

2
<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
else 
    { 
    alert("Your browser does not support XMLHTTP!"); 
    } 
} 
</script> 

ce morceau de code est disponible en link text vous pouvez apprendre les bases ici comme je l'ai fait. J'espère que cela t'aides.

0

var xmlHttp=new(window.ActiveXObject?ActiveXObject:XMLHttpRequest)('Microsoft.XMLHTTP');

Questions connexes