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
)中的那些。
我的登录请求有问题。
我收到这个错误:
[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
)中的那些。