Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么jquery$.get函数不使用';你不能调用Javaservlet吗?_Jquery_Ajax_Servlet 3.0 - Fatal编程技术网

为什么jquery$.get函数不使用';你不能调用Javaservlet吗?

为什么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

我想在jquery中使用ajax调用这个servlet:

@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吗?我相信您正在发送帖子请求(因为您发布数据)否?