2010-10-18 2 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 переменные чувствительны к регистру. У вас есть xmlHttp и xmlhttp; они должны быть одинаковыми.

У вас также есть <pre><code> в начале вашего блока <script>, что является синтаксической ошибкой JavaScript.

+0

Хорошая добыча! Я пропустил это, когда проверил. Это может быть очень хорошо. –

+0

Спасибо, я даже не понял, что я использую другой случай ... – Judy

1

Поскольку никакого запроса не делается, я не уверен, вы можете сделать запросы к «HTTP: // СБСЕ: 8080», как FireFox может не видеть, что URL как на том же поддомене (Вы не можете делать запросы Ajax для ресурсов не в том же домене, что и запросчик).

Предположим, что вы указали URL-адрес относительно. Является ли запрос даже сгенерированным? Если это так, это, вероятно, ваша проблема.

+0

Сначала проверьте ответ tmont, это, вероятно, правильно. –

1

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 является Verboten. Если вы не используете csce: 8080, это не сработает.

Смежные вопросы