我是jQuery和Servlets的新手。在一个学校项目上工作,现在我遇到了这个问题。
我的proj3.html文件中左侧有一个导航栏,上面有锚标签。
<ul class="nav nav-list">
<li class="nav-header">Labels</li>
<li><a href="" class="labels">Sony</a></li>
<li><a href="" class="labels">Spinnin</a></li>
<li><a href="" class="labels">BMG</a></li>
<li><a href="" class="labels">Ultra</a></li>
<li><a href="" class="labels">Universal</a></li>
<li class="nav-header">Genere</li>
<li><a href="" class="genere">Rock</a></li>
<li><a href="" class="genere">Alternative Rock</a></li>
<li><a href="" class="genere">Pop</a></li>
<li><a href="" class="genere">EDM</a></li>
<li><a href="" class="genere">Hip-Hop</a></li>
</ul>
在Javascript中我有这个
$('a.labels').on('click',function(e){
var url = "http://example.edu/servlet/SampleQuery";
$.get(url);
e.preventDefault();
}
}
在我的servlet SampleQuery.java中,我从DB读取并转发到类似这样的JSP
RequestDispatcher dispatcher = null;
dispatcher = request.getRequestDispatcher("/jsp/DisplayVendor.jsp");
dispatcher.forward(request, response);
当我点击任何锚标签时$.get
被点击,但我的JSP页面没有显示。奇怪的是,如果我检查firebug的网络流量,我看到我的AJAX调用通过,我甚至可以看到DisplayVendor.jsp页面作为响应。但它没有显示出来。
有人可以指出我是否犯了错误。
谢谢
答案 0 :(得分:0)
您拨打$.get(url)
,但不对响应做任何事情。将其更改为
$.get(url, function(data) {
alert('here is the response data : ' + data);
});
显示您收到的内容。
例如,要使用AJAX调用返回的HTML更新id为“dynamicLoadedDiv”的div的内容,请使用
$.get(url, function(data) {
$('#dynamicallyLoadedDiv').html(data);
});
或只是
$('#dynamicallyLoadedDiv').load(url);
阅读the documentation了解详情。
请注意,如果您的目标是替换整个页面内容,我实际上并没有看到制作AJAX请求的重点。在这种情况下使用简单的超链接。