2016-03-04 60 views
0

我试图从刚刚得到一个简单的响应,但是我一直在敲墙头几个小时试图弄清楚这一点。XMLHttpRequest对象从JQuery AJAX调用到servlet是空的

这里就是我有我的doPost方法:

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException {  
    processRequest(request, response); 

    String message = "You reached the servlet and successfully got stuff back!"; 

    request.setAttribute("message", message); 

    PrintWriter writer = response.getWriter(); 

    writer.println("Hello World"); 
} 

我同时使用的setAttribute和作家从响应对象。我尝试了不同的Stack Overflow帖子的多个变体,试图弄清楚这一点,但我没有任何运气。我想我一定在这里做错了什么,但我对于我出错的地方完全无能为力。

这里是我的AJAX调用看起来是这样的:

window.onload=function(){ 
     var classHighlight = 'highlight'; 
     var $thumbs = $('.entry').click(function(e) { 

     var strDate = $(this).text(); 

     var client; 
     var data; 
     var url_action="GetData"; 
     if(window.XMLHttpRequest) 
     { 
      client=new XMLHttpRequest(); 
     } 
     else 
     {     
      alert("ASDF"); 
     } 
     client.onreadystatechange=function() 
     { 
      if (client.readyState==4 && client.status==200) 
      {      
       var data = client.responseType; 
       console.log(client); 
       alert(data); 
      } 
     }; 

     client.open("POST",url_action,true); 
     client.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     client.send(strDate); 
    }); 
    } 

当我跑我的网站,我触发调用AJAX事件的事件,我认为它的工作,但我不知道真的如何说。 onreadystate函数触发并执行它,但响应(任何形式)之后为空。

如果任何人有任何指针,我会很感激。我完全失去了这一点,并没有太多的经验(甚至除了这个被诅咒的网站之外真正寻求帮助的地方)。

这里是一个链接到我的github上这个网站的源:https://github.com/Zulukas/engbud

+0

是的,我们对此深感抱歉。我试图把我在那里尝试的一些简单的版本放在一起。这样做没有任何回报。 – Zulukas

+0

如果您有jQuery'$ .ajax',为什么您使用本机'XMLHttpRequest'? – jcubic

+1

因为我是一个无知的新手jquery,并试图通过我自己的努力和时间学习这个乐趣,并没有找到一个可靠的资源来学习这个巫术。 – Zulukas

回答

0

你确定你的网址是正确的? 另外我建议用Chrome DevTools调试XHR。

您需要做的就是在控制台窗口右键单击XHR日志记录。 enter image description here

之后您应该导航到网络选项卡,您可以观察所有请求,发送数据和接收到的答案。

enter image description here

这个主题更多阅读:

XHR on MDN

About Chrome DevTools

+0

我仔细检查了网址,是的,这是正确的。此外,我似乎无法按照您的指南通过第一步,因为根据您向我解释的内容,即使在我的Chrome浏览器中甚至没有“记录XMLHttpRequests”选项。 我可以在网络标签下看到我的XHR资料,但是对于响应它是完全空白的,而响应标题说明数据是空白的。 我在我原来的问题中添加了一个链接到我的git回购项目。 – Zulukas