2015-07-02 2 views
-1

Мне нужно отобразить мир hello с помощью сервлет-программы в браузере с помощью вызова Ajax, но при нажатии кнопки я не должен отображать его, что могло быть причиной этой ошибки:Uncaught NetworkError: Не удалось выполнить 'send' on 'XMLHttpRequest'

Uncaught NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///D:/workspace/Poc_Ajax/WebContent/WEB-INF/HelloWorld'.

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function getXMLHttpRequest() { 
    var xmlHttpReq = false; 
    // to create XMLHttpRequest object in non-Microsoft browsers 
    if (window.XMLHttpRequest) { 
     xmlHttpReq = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
     try { 
      // to create XMLHttpRequest object in later versions 
      // of Internet Explorer 
      xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (exp1) { 
      try { 
       // to create XMLHttpRequest object in older versions 
       // of Internet Explorer 
       xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (exp2) { 
       xmlHttpReq = false; 
      } 
     } 
    } 
    return xmlHttpReq; 
} 
/* 
* AJAX call starts with this function 
*/ 
function makeRequest() { 
    var xmlHttpRequest = getXMLHttpRequest(); 
    xmlHttpRequest.onreadystatechange = getReadyStateHandler(xmlHttpRequest); 
    xmlHttpRequest.open("POST", "HelloWorld", true); 
    xmlHttpRequest.setRequestHeader("Content-Type", 
      "application/x-www-form-urlencoded"); 
    xmlHttpRequest.send(); 
} 

/* 
* Returns a function that waits for the state change in XMLHttpRequest 
*/ 
function getReadyStateHandler(xmlHttpRequest) { 

    // an anonymous function returned 
    // it listens to the XMLHttpRequest instance 
    return function() { 
     if (xmlHttpRequest.readyState == 4) { 
      if (xmlHttpRequest.status == 200) { 
       document.getElementById("hello").innerHTML = xmlHttpRequest.responseText; 
      } else { 
       alert("HTTP error " + xmlHttpRequest.status + ": " + xmlHttpRequest.statusText); 
      } 
     } 
    }; 
} 
</script> 
</head> 
<body> 
<div>Getting Started with AJAX using JAVA: Hello World!</div> 
<div id="hello"><button type="button" onclick="makeRequest()">Say Hello!</button></div> 
</body> 
</html> 

ответ

1

чтобы запустить сервлет программу, нужно сделать запрос HTTP на веб-сервер, который сконфигурирован для выполнения сервлета.

Ваш URL-адрес Ajax (как показано в сообщении об ошибке) начинается с file://, поэтому вы пытаетесь работать с локальным файлом вместо веб-сервера.

Установите веб-сервер (например, Tomcat). Загрузите из него свой HTML-документ. Убедитесь, что "HelloWorld" является относительным URI из этого документа HTML на URL сервлета.

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