烧瓶如何在ajax调用后重定向到新页面[重复]
Posted
技术标签:
【中文标题】烧瓶如何在ajax调用后重定向到新页面[重复]【英文标题】:Flask how to redirect to new page after ajax call [duplicate] 【发布时间】:2018-04-17 18:01:52 【问题描述】:我尝试在 ajax 发布后重定向到新页面,但我还没有成功。
我的模板如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
$(function()
var selectedForm = 0;
function doWork()
var response = $('#reply1').val();
console.log(response);
$.post(url: "receiver", data: JSON.stringify(selectedForm: selectedForm, response : response),
contentType: "application/json", success: function());
$('.respondButton').click(function(e)
e.preventDefault();
var selectedButton = $(this).attr('id');
selectedForm = selectedButton.replace('response', '');
console.log(selectedForm);
);
$('#submitButton1').click(function(e)
e.preventDefault();
doWork();
);
);
</script>
html部分:
<a id="response1" href="" class="respondButton">
<span>response1</span>
</a>
<a id="response2" href="" class="respondButton">
<span>response2</span>
</a>
<form action="/receiver" method="post" id="form1" name="form1">
<textarea type="text" rows ="3" name="reply1" id="reply1"></textarea>
<button type="submit" name="submitButton1" id="submitButton1">Submit</button>
</form>
在服务器端烧瓶应用看起来像这样:
#!flask/bin/python
import sys
from flask import Flask, render_template, request, redirect, Response, url_for
import random, json
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/somepage')
def somepage():
return 'Success'
@app.route('/receiver', methods = ['POST'])
def worker():
data = request.get_json()
result = ''
result = str(data)
print(result)
return (redirect(url_for('somepage')))
if __name__ == '__main__':
app.run(debug=True)
当我打开 Chrome 开发者工具并点击网络时,它看起来很好,我可能会看到成功消息,但仍然浏览器不会重定向到 /somepage
【问题讨论】:
【参考方案1】:正如我在您的烧瓶应用程序中看到的,您尝试输出数据并重定向到主页,但应用程序将执行输出部分,即消息并且不会继续重定向, 如果你需要重定向,你应该在 ajax 调用中进行。
success: function()
window.location.href = "somepage";
【讨论】:
我试图发送评论并刷新页面。您可能会看到现场演示 here 谢谢。以上是关于烧瓶如何在ajax调用后重定向到新页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如果查询匹配,则使用 Django 在 Ajax 调用后重定向