【发布时间】:2017-03-27 22:00:08
【问题描述】:
我正在尝试使用 ajax 和 servlet 进行一些测试,但是当我启动应用程序时,servlet 总是返回“错误”
package servlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "ServletCatalogue", urlPatterns = "/test")
public class ServletCatalogue extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.write("test");
}
}
$(function() {
$("#catalogue").on('click', function() {
$.ajax({
url: "/test",
type: "GET",
success: ok,
error: error
});
});
});
function ok() {
alert("fine")
};
function error() {
alert('error')
}
为什么总是打印"error"?我知道 JS 正确调用了 servlet,因为我放了一个 system.out 来检查它。
【问题讨论】:
-
它运行错误处理程序,因为请求没有返回
2xxHTTP 响应代码。您需要诊断为什么会这样。 -
在浏览器中打开
/test并粘贴页面中的错误 -
尝试将状态参数添加到错误事件处理方法中,看看是什么原因导致错误,可能是您的服务器不可访问。
-
尝试通过
out.flush();提交响应。看看您是否将响应返回到浏览器级别。 -
@Sagar 如果我去 \test 它打印'test'
标签: javascript java jquery ajax servlets