Javascript 调用ajax到servlet始终调用error函数
我试图用ajax和servlet进行一些测试,但是当我启动应用程序时,servlet总是返回“error”Javascript 调用ajax到servlet始终调用error函数,javascript,java,jquery,ajax,servlets,Javascript,Java,Jquery,Ajax,Servlets,我试图用ajax和servlet进行一些测试,但是当我启动应用程序时,servlet总是返回“error” package servlet; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.ser
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");
}
}
$(函数(){
$(“#目录”)。在('click',function()上{
$.ajax({
url:“/test”,
键入:“获取”,
成功:好的,
错误:错误
});
});
});
函数ok(){
警惕(“罚款”)
};
函数错误(){
警报('错误')
}
为什么它总是打印“错误”?我知道JS正确地调用了servlet,因为我放了一个
system.out
来检查它。我正在使用Javaservlet来接收调用。首先得到的是什么原因。我使用以下函数实现了这一点
function ajaxFailure(data, textStatus, errorThrown){
alert("OH NO! data: "+data + ' textStatus: ' + textStatus + 'errorThrown: ' + errorThrown);
}
我发现这个错误是由于抛出了错误:没有从文本到application/json的转换
然后我在$.ajax调用中将应用程序/json更改为文本。这解决了我的问题我正在使用Javaservlet来接收调用。首先得到的是什么原因。我使用以下函数实现了这一点
function ajaxFailure(data, textStatus, errorThrown){
alert("OH NO! data: "+data + ' textStatus: ' + textStatus + 'errorThrown: ' + errorThrown);
}
我发现这个错误是由于抛出了错误:没有从文本到application/json的转换
然后我在$.ajax调用中将应用程序/json更改为文本。这解决了我的问题它运行错误处理程序,因为请求不返回
2xx
HTTP响应代码。您需要诊断原因。在浏览器中打开/test
并从页面粘贴错误尝试将状态参数添加到错误事件处理程序方法,并查看错误原因,可能是服务器不可访问。尝试通过out.flush()提交响应代码>。查看是否将响应返回到浏览器级别。@Sagar如果我转到\test,它将打印“test”,它将运行错误处理程序,因为请求不返回2xx
HTTP响应代码。您需要诊断原因。在浏览器中打开/test
并从页面粘贴错误尝试将状态参数添加到错误事件处理程序方法,并查看错误原因,可能是服务器不可访问。尝试通过out.flush()提交响应代码>。查看是否将响应返回到浏览器级别。@Sagar如果我转到\test,它将打印“test”