2010-10-18 237 views
1

我嘗試了下面的代碼,通過單擊按鈕向jsp頁面發送請求。我檢查了Httpfox,但沒有要求。我只是在html代碼的主體中使用了整個代碼。我在做一些愚蠢的錯誤嗎?請建議..XMLHTTP請求請求不起作用

<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> 

回答

4

那麼,在JavaScript中,變量區分大小寫。你有xmlHttpxmlhttp;那些應該是一樣的。

您在<script>塊的開頭也有<pre><code>,這是一個JavaScript語法錯誤。

+0

好搭檔!完全錯過了,當我檢查它。這很可能是。 – 2010-10-18 04:28:03

+0

謝謝我沒有意識到我正在使用不同的情況... – Judy 2010-10-18 04:49:32

1

由於沒有請求被提出,我不相信,你實際上可以使請求的「http://歐安會:8080」火狐可能看不到網址爲位於同一子(您不能對與請求者不在同一域中的資源發出Ajax請求)。

假設您使URL相對。請求是否會生成呢?如果是這樣,那很可能是你的問題。

+0

檢查tmont的回答首先,它可能是正確的。 – 2010-10-18 04:31:16

1

Quote:xmlhttp = new XMLHttpRequest();

兩件事情。首先,您可能想要使用更強大的方法來獲取XMLHttpRequest對象。其次,javascript區分大小寫; !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'] 
); 

報價:http://csce:8080/test/ind ...

記住,跨域XMLHTTP是禁止的。除非你從csce:8080提供服務,否則這是行不通的。