JSON Parse error: Unexpected EOF with AJAX, Javascript and Servlet in Java

JSON Parse error: Unexpected EOF with AJAX, Javascript and Servlet in Java

我的登录请求有问题。

我收到这个错误:

[object Object]
parsererror
SyntaxError: JSON Parse error: Unexpected EOF

请求已正确发送(根据网络控制台),但当我收到响应时出现此错误,但我无法看到 JSON 对象。

我正在使用 JavaScript、Ajax、jQuery,对于服务器端,我在 Java 中使用 servlet。

这是我的代码

function connect(login, password){
    $.ajax({
        type : "GET",
        url :"http://adress/log",
        data : "login=" + login + "&pwd=" + password,
        dataType : "json",
        success : traiteReponseConnexion,
        error : function(XHR, testStatus, errorThrown) {
            console.log("echec");
            alert(XHR + "\n" + testStatus + "\n" + errorThrown);}
        });
}

function traiteReponseConnexion(el){
    if(el.error != undefined){
        console.log("ici" +el.id);
    }else{
        alert("I'm here");
        window.location.href="main.jsp?id="+el.id+"&login="+el.login+"&key="+el.key+"";
    }
}

在我的 servlet 中

public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException{
    Map<String,String[]> pars = req.getParameterMap();
    if(pars.containsKey("log") && pars.containsKey("pwd")){
        String log = req.getParameter("log");
        String pwd = req.getParameter("pwd");
        resp.addHeader("Access-Control-Allow-Origin", "*");
        resp.setContentType("application/json");
        JSONObject user = UserLogin.authentifiateUser(log, pwd);
        resp.getWriter().println(user);
    }
}

我不明白问题出在哪里。我没有来自服务器的响应 网络控制台,但在其他服务中我似乎没有这个问题(例如注销)。

您可能需要发送的不仅仅是Access-Control-Allow-Origin;如果正在进行预检,您可能还需要 Access-Control-Allow-Methods and/or Access-Control-Allow-Headers。如果是这样,我相信您需要处理 doOptions(而不是 doGet)中的那些。