1
我想调用这个servlet使用Ajax jQuery中:
@WebServlet("/getCoursesForSubject")
public class GetCoursesForSubjectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public GetCoursesForSubjectServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...........
而在JSP页面中我有这样的jQuery代码调用Ajax请求:
$("#subjectSelect").change(function(){
var name = $("#subjectSelect option:selected").text();
alert("change handler is called "+name);
$.get("/getCoursesForSubject",{"subjectName":name},function(responseJson){
$.each(responseJson,function(index,course){
alert(course);
$("<option>").appendTo($("#courseSelect")).text(course.courseDescriptionName);
});
});
});
的change
方法被调用,警报dsplayed正确:
alert("change handler is called "+name);
不过下次我希望被调用的路径/getCoursesForSubject
的Java Servlet,但事实并非如此。
谷歌浏览器的控制台,我得到这个错误:
GET http://localhost:8080/getCoursesForSubject?subjectName=AS%20-%20Aerospace%20Studies%22 404()
这意味着Ajax调用制成,但服务器返回404错误。
这是解决通过给contextPath
URL。正确$.get
方法是:
$.get("${pageContext.request.contextPath}/getCoursesForSubject",{"subjectName":name},function(responseJson){
$.each(responseJson,function(index,course){
alert(course);
$("<option>").appendTo($("#courseSelect")).text(course.courseDescriptionName);
});
});
你能直接在浏览器地址栏中访问这个URL吗? – Nitesh
我相信你正在发送一个帖子请求(因为你发布数据)不是? – Sletheren