2010-10-18 5 views
1

J'ai essayé le code suivant pour envoyer la demande à la page jsp sur un clic de bouton. J'ai vérifié sur Httpfox mais aucune demande ne va. Je viens d'utiliser tout le code dans le corps du code html. Est-ce que je fais une erreur stupide. Veuillez suggérer ..XMLHTTPRequête de demande ne fonctionne pas

<button type="button" onClick="handleButtonClick();">Click Me!</button> 
<script type="text/javascript"> 




function handleButtonClick() 
{ 
    // Declare the variables we'll be using 
    var xmlHttp, handleRequestStateChange; 

    // Define the function to be called when our AJAX request's state changes: 
    handleRequestStateChange = function() 
    { 
     // Check to see if this state change was "request complete", and 
     // there was no server error (404 Not Found, 500 Server Error, etc) 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      var substring=xmlHttp.responseText; 
      // Do something with the text here 
      alert(substring); 
     } 
    } 

    xmlhttp = new XMLHttpRequest(); 
    xmlHttp.open("GET", "http://csce:8080/test/index.jsp?id=c6c684d9cc99476a7e7e853d77540ceb", true); 
    xmlHttp.onreadystatechange = handleRequestStateChange; 
    xmlHttp.send(null); 
} 
</script> 

Répondre

4

Eh bien, en JavaScript, les variables sont sensibles à la casse. Vous avez xmlHttp et xmlhttp; ceux-ci devraient être les mêmes.

Vous avez également <pre><code> au début de votre bloc <script>, qui est une erreur de syntaxe JavaScript.

+0

Bonne prise! Totalement manqué que quand je l'ai vérifié. Ça pourrait très bien être ça. –

+0

Merci, je n'ai même pas réalisé que j'utilise un étui différent ... – Judy

1

Comme aucune demande est faite, je ne suis pas convaincu que vous pouvez réellement faire des demandes à « http: // SCGC: 8080 » comme FireFox peut ne pas voir cette URL comme étant sur le même sous-domaine (Vous ne pouvez pas faire de requêtes Ajax pour des ressources ne se trouvant pas sur le même domaine que le demandeur).

Supposons que vous ayez fait l'URL relative. Une requête est-elle même générée alors? Si oui, c'est probablement votre problème.

+0

Vérifiez d'abord la réponse de tmont, c'est probablement correct. –

1

Quote: xmlhttp = new XMLHttpRequest();

Deux choses. Tout d'abord, vous pouvez utiliser une méthode plus robuste pour obtenir un objet XMLHttpRequest. Deuxièmement, javascript est sensible à la casse; ! XMLHTTP = xmlHttp

xmlHttp = (function (x,y,i) { 
    if (x) return new x(); 
    for (i=0; i<y.length; y++) try { 
     return new ActiveXObject(y[i]); 
    } catch (e) {} 
})(
    window.XMLHttpRequest, 
    ['Msxml2.XMLHTTP','Microsoft.XMLHTTP'] 
); 

Quote: http://csce:8080/test/ind ...

Gardez à l'esprit que XMLHTTP inter-domaines est verboten. Sauf si vous utilisez csce: 8080, ça ne marchera pas.

Questions connexes