javascript - 烧瓶返回不适用于html代码中的post jquery请求
问题描述
我遇到了通过 jquery 帖子提交表单的问题。我正在处理表单数据,需要提交具体数据。我无法使用内置 POST,因为没有使用 dataTables 插件提交多个页面,因此我必须在提交之前修改 javascript 中的数据。下面的代码正在执行 'url_for('aws_execute')' 中的代码,但页面没有在浏览器中加载。
所以在这个例子中,'123' 将被打印到 python 控制台,但网站不会被重定向,并且“测试请工作”不会显示在浏览器中。
如果我在发布后执行功能,我可以获得控制台日志或警报等信息,但我不确定如何让页面重定向,因为我希望新页面显示结果而不是警报,等等。任何想法如何做到这一点?
谢谢!
<aws_options.html 页面>
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<link href="{{ url_for('static', filename='css/jquery.dataTables.min.css') }}" rel="stylesheet">
<script src="{{ url_for('static', filename='jquery-3.5.1.js') }}"></script>
<script src="{{ url_for('static', filename='jquery.dataTables.min.js')}}"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#options').on('submit', function(e){
// Prevent actual form submission
e.preventDefault();
var data = table.$('input,select,textarea').serializeArray();
var data2 = $(this).serializeArray();
var data3 = $.merge(data,data2);
not working--->$.post({
url: '{{ url_for('aws_execute') }}',
data: data3
},
function(data3,status){
alert("Data: " + data3 + "\nStatus: " + status);
});
});
} );
</script>
</head>
<body>
<h1>AWS Options</h1>
<form id="options" method="POST" action="{{ url_for('aws_execute') }}">
<button type="submit">Submit Form</button>
(FORM STUFF)
</body>
</html>
在蟒蛇中:
@app.route('/aws_execute', methods=['POST'])
@saml_manager.login_required
def aws_execute():
print('123')
return 'test please work'
解决方案
$.post
发出 AJAX 请求,因此对它的任何响应都不会自动呈现。如果您的意图是对您的POST
请求呈现响应,为什么不让表单遵循其默认行为(即摆脱所有 jQuery)?
否则,如果您希望它是 AJAX,则需要包含一个回调来指定在您获得数据后如何处理响应中的数据。例如,试试这个,看看它是否记录test please work
到您的浏览器控制台:
$.post({
'{{ url_for('aws_execute') }}',
data3,
responseData => console.log(responseData)
});
推荐阅读
- jquery - 为什么我的 jquery .on('change') 不适用于动态更改的行
- c++ - 如何将 C++ 模板代码转换为等效的 C 代码
- javascript - Javascript 检查文件大小是否超过 25mb
- reactjs - 如何在反应中滚动到模态屏幕中的 Ref
- java - 我如何将 java 连接到 sqlite db 浏览器
- javascript - Javascript如何添加负数和正数
- python - OpenCV 将 VideoCap 属性设置为 CAP_PROP_CONVERT_RGB 会生成奇怪的布尔参数错误
- php - 用于连接到 Oracle 的 php 的 dockerfile 设置
- android - getLifecycle() 在 ComponentActivity 的构造函数中返回 null。请确保您正在懒惰地构建您的 Lifecycle android
- java - CMake 和 make 在错误的地方寻找 libjawt.so 文件