我有这个$ .post和平的代码:
$.post("../admin-login",
{
dataName:JSON.stringify({
username:uname,
password:pass,
})
}, function(data,status){
console.log("Data:"+data);
answer = data;
}
);
我不会将其转换为$ .ajax。在servlet方面,我要求request.getParamter(“dataName”),但我不知道如何编写数据:$ .ajax中的部分,以便我可以得到这样的参数(request.getParamter(“dataName”))?此外,它似乎是这类代码的问题,我认为异步的原因,我不能这样做:
var answer="";
function(data,status){
console.log("Data:"+data);
answer = data;
}
并且答案是保持空(“”),即使在我的服务器应答时,在控制台中写成“真”或“假”。这是关于什么的? 提前谢谢。
我发现问题出在click()事件中。当click()完成时,Ajax结束,所以我无法在事件完成之前获取数据。有什么不好的是我无法获取数据因为它已经完成了。有谁知道如何解决这个问题?
答案 0 :(得分:1)
function getResult(data) {
// do something with data
// you can result = data here
return data;
}
$.ajax({
url: "../admin-login",
type: 'post',
contentType: "application/x-www-form-urlencoded",
data: {
dataName:JSON.stringify({
username:uname,
password:pass,
})
},
success: function (data, status) {
getResult(data);
console.log(data);
console.log(status);
},
error: function (xhr, desc, err) {
console.log(xhr);
}
});
成为
Guest Additions
答案 1 :(得分:0)
您需要查看信息os如何作为查询参数或有效负载到达您的servlet。
答案 2 :(得分:0)
你可以尝试构建你的AJAX请求,如下所示:
var dataName = username:uname, password:pass;
$.ajax({
url: "../admin-login",
data: JSON.stringify(dataName),
type: "POST",
cache: false,
dataType: "json"
}).done(function(data, status) {
console.log("Data:"+data);
answer = data;
});