ответ от сервера - PullRequest
       13

ответ от сервера

0 голосов
/ 11 марта 2010

Когда я создаю запрос к серверу:

<script language="javascript" type="text/javascript">
function ajaxFunction()
var ajaxRequest;
try{
ajaxRequest = new XMLHttpRequest();
} catch (e){
try{
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
alert("Your browser broke!");
return false;
}
}

} ajaxRequest.onreadystatechange = function () {

if(ajaxRequest.readyState == 4){

document.write(ajaxRequest.responseText);

document.myForm.time.value = ajaxRequest.responseText;
    }
}
ajaxRequest.open("GET", "http://www.bbc.co.uk", true);
ajaxRequest.send(null); 

}

</script>

Почему ответ ничто? Почему ответ не HTML-код этого веб-сайта?

Ответы [ 2 ]

1 голос
/ 11 марта 2010

Это должно работать (у меня нет времени проверять это прямо сейчас.)

function ajaxFunction() { //Added open {
    var ajaxRequest;
    try{
    ajaxRequest = new XMLHttpRequest();
    } catch (e){
// Removed additional try / catch
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
        alert("Your browser broke!");
        return false;
        }
    } 
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            document.write(ajaxRequest.responseText);
            document.myForm.time.value = ajaxRequest.responseText;
        }
    }; // Added semi-colon to the end of the anonymous function definition
ajaxRequest.open("GET", "http://www.bbc.co.uk", true);
ajaxRequest.send(null); 
}

Несколько заметок:

  • Пробел не требуется по большей части в Javascript, но правильный отступ делает намного более легким для выявления синтаксических ошибок.
  • Когда вы связываете атрибут с анонимной функцией, вам нужно следовать за } с ;
  • Как только вы поймете, как это работает, покопайтесь в одной из больших библиотек ajax functions / modules. (Обучение - это всегда хорошо, и ajax - это одна из тех областей, которой действительно нужно несколько десятков человеко-часов работы, чтобы преодолеть все различия между браузерами.) +

ДОПОЛНЕНИЕ:

Междоменные запросы Ajax очень трудно выполнить правильно (т. Е. Безопасно, надежно и без ошибок) - они запрещены для JavaScript непосредственно политикой Same-Domain Origin .

См. этот вопрос и этот вопрос для получения дополнительной информации о предмете и способах его решения с помощью прокси-сервера или jsonp

+ ajax-функция jQuery составляет 325 строк (и это не считая $.ajax.settings или $.extend())

0 голосов
/ 11 марта 2010

Вы можете рассмотреть возможность использования библиотеки, такой как jQuery, для выполнения запросов AJAX - они обрабатывают все кросс-браузерные особенности для вас и выполняют много дополнительной работы для загрузки. Ваш код может быть таким простым, как

$.get(
  'http://www.bbc.co.uk',
  function(data) {
    // do something with data
  }
);`
...