Javascript 使用java的ajax不起作用

Javascript 使用java的ajax不起作用,javascript,ajax,servlets,Javascript,Ajax,Servlets,嗨,我正在用servlet尝试我的第二个ajax程序。但它不起作用。请帮忙 index.html <!DOCTYPE html> <html> <head> <script> function callServer(str){ alert(str); var myxml = new XMLHttpRequest(); myxml.onreadystatechange = function { if(myxml.readyStat

嗨,我正在用servlet尝试我的第二个ajax程序。但它不起作用。请帮忙

    index.html

<!DOCTYPE html>
<html>
<head>
<script>
function callServer(str){
alert(str);
var myxml = new XMLHttpRequest();
myxml.onreadystatechange = function  {
    if(myxml.readyState == 4 && myxml.status == 200)
        document.getElementById("replay").innerHTML = myxml.responseText;
}
myxml.open("GET",""/suggest?query=str",true);
myxml.send();

  }
   </script>
   </head>
   <body>
   <input id="enter" type="text" onkeyup="callServer(this.value)" />
   <div id="replay"></div>
   </body>
   </html>
index.html
函数调用服务器(str){
警报(str);
var myxml=new XMLHttpRequest();
myxml.onreadystatechange=函数{
if(myxml.readyState==4&&myxml.status==200)
document.getElementById(“replay”).innerHTML=myxml.responseText;
}
open(“GET”,“”/suggest?query=str”,true);
myxml.send();
}
我的servlet在这里

  import java.io.IOException;
  import javax.servlet.ServletException;
  import javax.servlet.annotation.WebServlet;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  @WebServlet("/suggest")
  public class suggest extends HttpServlet {
public suggest() {
    super();
    }

protected void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {
    String [] values = {"sha","kla","hello","bun"};
    String query = request.getParameter("query");
    for (int i = 0; i < values.length; i++) {
        if (values[i].equals(query)) 
            response.getWriter().write("OK its available dude... "+query);
        else response.getWriter().write("Sorry not yet... "+query);

    }

}
import java.io.IOException;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
@WebServlet(“/suggest”)
公共类建议扩展HttpServlet{
公众建议(){
超级();
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
字符串[]值={“sha”、“kla”、“hello”、“bun”};
字符串查询=request.getParameter(“查询”);
对于(int i=0;i
}

在这里,我认为错误可能在js函数callserver中。我已经用一个警报语句检查了每一行,它工作正常,直到这一行
myxml.onreadystatechane=function。警报一直有效。请帮助您的URL包含语法错误 请将其更改为:myxml.open(“GET”,“/suggest?query=str”,true)

我添加了一个适合您要求的教程链接:


函数{
“/suggest?query=str”……你至少应该在用这样的基本语法错误发布代码之前运行代码,或者使用与任何浏览器一起使用的开发工具。你只使用警报。WoAh。考虑使用jQuery——它更容易使用,更容易编写,更跨平台。查看jQuery的<代码> $。你的生活会轻松得多。或者可能就是@Fabriciomatté指出的那种丑陋的双引号……我总是建议在添加jQuery之类的库之前先学习底层语言。然后你就会知道为什么有些东西在开箱即用的情况下无法在浏览器中工作。