为什么jquery$.get函数不使用';你不能调用Javaservlet吗?
我想在jquery中使用ajax调用这个servlet:为什么jquery$.get函数不使用';你不能调用Javaservlet吗?,jquery,ajax,servlet-3.0,Jquery,Ajax,Servlet 3.0,我想在jquery中使用ajax调用这个servlet: @WebServlet("/getCoursesForSubject") public class GetCoursesForSubjectServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Ge
@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);
});
});
});
但接下来我希望调用路径/getCoursesForSubject
上的Javaservlet,但实际不是这样
在google chrome的控制台中,我发现以下错误:
GET http://localhost:8080/getCoursesForSubject?subjectName=AS%20-%20Aerospace%20Studies%22 404 ()
这意味着进行了ajax调用,但服务器返回404错误
通过将contextPath
指定给url,可以解决该问题。正确的$。获取方法是:
$.get("${pageContext.request.contextPath}/getCoursesForSubject",{"subjectName":name},function(responseJson){
$.each(responseJson,function(index,course){
alert(course);
$("<option>").appendTo($("#courseSelect")).text(course.courseDescriptionName);
});
});
$.get(${pageContext.request.contextPath}/getCoursesForSubject“,{“subjectName”:name},函数(responseJson){
$.each(响应、函数(索引、课程){
警报(过程);
$(“”).appendTo($(“#courseSelect”).text(course.courseDescriptionName);
});
});
您也可以使用
request.getServletContext()
如果您没有使用JSTL
使用$.get()
方法,确保servlet具有get
方法
使用$.post()
servlet应该包含post
方法 您也可以使用
request.getServletContext()
如果您没有使用JSTL
使用$.get()
方法,确保servlet具有get
方法
使用$.post()
servlet应该包含post
方法 您可以直接在浏览器地址栏中访问此URL吗?我相信您正在发送帖子请求(因为您发布数据)否?您可以直接在浏览器地址栏中访问此URL吗?我相信您正在发送帖子请求(因为您发布数据)否?