所以我有一天这个问题,我无法从同一页面发送2个ajax请求。 我读过的大部分文档都是关于使用无冲突方法在同一页面上运行2个版本的jquery 但我正在尝试使用相同版本的Jquery发送2个ajax请求。
继承我的代码
<script>
$(document).ready(function(){
var username = $("title").html();
$.post("functions/userdetails.php", {username: username},
function(result){
if(result == 'nf'){
alert("The Account Doesnt Exist");
}
else{
var obj = JSON.parse(result);
$.each(obj, function(key, val) { // iterate over results
$("#name").html(val.fname+" "+val.lname);
$("#bio").html(val.bio);
$("#username").html("@"+val.username);
$("#tid").html(val.id);
})
}
}
);
});
$(document).ready(function(){
var tid = $("tid").html();
var myid = $("myid").html();
$.post("functions/checkrelations.php", {tid: tid, myid:myid},
function(result){
if(result == 'nf'){
$("#sendr").show();
$("#cancel").hide();
}
else{
$("#cancel").show();
$("#sendr").hide();
})
}
}
);
});
</script>
如果我只有一个请求,那么效果很好,但是当我把它们放在一起时,它们都不起作用。
答案 0 :(得分:2)
以下是您的代码的编辑版本,这可能对您有所帮助
@Override
public void keyReleased(KeyEvent e)
{
typeText();
/*new TwoSecondDelay (Integer.toString(name));
name++;
client.setText(server.getText());*/
}
public void typeText(){
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent event){
client.setText(server.getText());
}
};
Timer timer = new Timer(2000, listener);
timer.setRepeats(false);
timer.start();
}
答案 1 :(得分:2)
正如Ananthakrishnan Baji在评论中所说,看来你的第二个功能取决于你的第一个功能。
第二个功能还有一些其他问题。 ID缺少jQuery选择器中的哈希标记。该函数的右括号似乎被赶上了else语句。
我建议使用Promises来保持较低的代码深度并处理错误,而不是仅仅嵌套函数并最终深入到嵌套的代码块中。像这样:
$(document).ready(function(){
var username = $("title").html();
// Make your first request
$.post("functions/userdetails.php", {username: username})
// Handle the first response
.then(function(result) {
if (result === 'nf') {
// Use promise chain rejection to handle errors.
return $.Deferred().reject("The Account Doesn't Exist");
} else {
var obj = JSON.parse(result);
// Are there actually multiple, here?
// This will overwrite on each loop.
$.each(obj, function(key, val) {
$("#name").html(val.fname + " " + val.lname);
$("#bio").html(val.bio);
$("#username").html("@" + val.username);
$("#tid").html(val.id);
});
}
})
// Make the next request.
.then(function() {
var tid = $("#tid").html();
var myid = $("#myid").html();
return $.post("functions/checkrelations.php", {tid: tid, myid:myid});
})
// Update the appearance
.then(function(result) {
if (result === 'nf') {
$("#sendr").show();
$("#cancel").hide();
} else {
$("#cancel").show();
$("#sendr").hide();
}
})
// This is the "catch" logic.
.then(null, function(errorMessage) {
if (typeof errorMessage === 'string') {
alert(errorMessage);
} else {
// If the requests error, or the JSON.parse throws, we end up here.
alert('Something went wrong!');
}
}
});