Javascript 为什么ajax方法调用错误函数?

Javascript 为什么ajax方法调用错误函数?,javascript,java,jquery,ajax,servlets,Javascript,Java,Jquery,Ajax,Servlets,我有jquery脚本,它向servlet发送ajax请求。它工作正常,它将文本数据正确地发布到servlet,但随后它调用了error函数,而不是success函数(我选中了,servlet将返回到ajax的非空字符串) 为什么ajax方法调用错误函数 下面是脚本代码 $(document).ready(function () { $("#login-button").click(function () { var userPassword = $

我有jquery脚本,它向servlet发送ajax请求。它工作正常,它将文本数据正确地发布到servlet,但随后它调用了error函数,而不是success函数(我选中了,servlet将返回到ajax的非空字符串)

为什么ajax方法调用错误函数

下面是脚本代码

    $(document).ready(function () {
        $("#login-button").click(function () {
            var userPassword = $("input#userPassword").val();
            var userLogin = $("input#userLogin").val();
            $.ajax({
                type: "POST",
                url: "http://localhost:8181/library/login",
                data: {login: userLogin, password: userPassword},
                dataType: "text",
                success: function (data) {
                    if (data == "1") {
                        document.location.href = "http://localhost:8181/library/workshop.html";
                    }
                    if (data == "2") {
                        document.location.href = "http://localhost:8181/library/library.html";
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert("Error report\n" + "jqXHR = " + jqXHR + "\n" + "textStatus = " + textStatus + "\n" +
                            "errorThrown =  " + errorThrown);
                }
            });
        });
    });
下面是servlet的代码

    public class LoginServlet extends HttpServlet {

@Override
public void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    PrintWriter out = response.getWriter();
    String login = request.getParameter("login");
    String password = request.getParameter("password");
    SocketConnection.output.println("log_in " + login + " " + password);
    out.print(SocketConnection.input.readLine());
    out.close();
        }

    }

textStatus值为
error
,errorshown值为void,在错误报告中。

如果返回状态200 您的函数包含以下设置

dataType: "text",

它可能没有发送文本。只要尝试删除此设置,我希望它能正常工作。输出存储与连接到数据库的应用程序连接的内部逻辑。您确定数据类型(文本)正确吗--“文本”:纯文本字符串。它将有助于证明来自服务器的实际上是一个字符串
SocketConnection.input.readLine()
返回
string
,作为
ajax
中的数据类型,我可以从
xml
json
script
html
text
中进行选择。我认为,
java
String
根据
text
,或者它不正确?不确定HttpServletRequest如何工作--在success函数中尝试--cosole.log(data)--并将结果发布到Q中。使用浏览器上的devtools访问控制台,但这是个问题,它不知何故从未达到success函数。甚至它也能正确地发送数据。