用户按下站点上的按钮,此时ajax请求启动,而服务器返回True或False。如果结果为True,则要处理另一个ajax请求,但我什么都没得到(我猜在ajax中)。
这是我的js代码:
document.getElementById('next_in').onclick = function (){
$.ajax({
data: {
login: document.getElementById('log').value,
password: document.getElementById('pass').value
},
type: 'POST',
url: '/user_login',
success: function (localRes) {
if(localRes.result==true){
$.ajax({
data: {
login: document.getElementById('log').value
},
type: 'POST',
url: '/private',
success: function () {
alert('Connected')
},
error: function () {
alert('There is a mistake!')
}
});
}
else{
alert('Incorrect login or password!');
}
}
});
}
和python代码:
@app.route('/private', methods=['POST'])
def private():
return render_template("rates.html")
然后在网站上按下按钮后,我收到了“已连接”,但随后(我认为此事件调用了我的python函数)没有重定向到rates.html ......
我不明白这里有什么问题..
请。我希望能够了解哪一方面的问题以及如何解决这个问题?
谢谢!
编辑一个
我确实缩短了我的python函数以显示问题。在return render_template("rates.html")
之前的实际情况中,存在巨大的进程(对数据库的请求,一些计算等),因此python函数是:
@app.route('/private', methods=['POST'])
def private():
# ******************** HUGE processing
return render_template("rates.html")
抱歉,如果我困惑了你,但简单的重定向到.html不是我想要的。我想在嵌套的ajax请求中调用python函数。
答案 0 :(得分:1)
当您使用AJAX请求时,浏览器不会自动重定向您,也不会显示您的请求返回的任何内容。
如果rates.html是完整的HTML网页,请从
更改内部回调success: function () {
alert('Connected')
},
到此:
success: function(data) {
document.body.innerHTML = data;
},
从服务器(你的python代码)获取响应,然后用它做一些事情(在这种情况下在浏览器上呈现它)。