Запрос XMLHTTPrequest не работает - PullRequest
2 голосов
/ 18 октября 2010

Я попробовал следующий код, чтобы отправить запрос на страницу JSP одним нажатием кнопки. Я проверил на Httpfox, но нет запроса. Я просто использовал весь этот код в теле HTML-кода. Я делаю какую-то глупую ошибку. Пожалуйста, предложите ..

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

Ответы [ 3 ]

5 голосов
/ 18 октября 2010

Ну, в JavaScript переменные чувствительны к регистру.У вас есть xmlHttp и xmlhttp;они должны быть одинаковыми.

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

1 голос
/ 18 октября 2010

Цитата: 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, это не сработает.

1 голос
/ 18 октября 2010

Поскольку никаких запросов не делается, я не уверен, что вы действительно можете отправлять запросы на "http://csce:8080", так как FireFox может не увидеть этот URL как находящийся в одном поддомене (вы не можете делать запросы Ajax для ресурсов не в том же доменев качестве запрашивающего).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...