在flask ajax请求后不要重新加载网页

Ten*_*cte 3 javascript python ajax jquery flask

我有这个ajax请求

$(function() {
    $('#left').bind('click', function() {
        var form = $('form#data')[0]; // 
        var formData = new FormData(form);

        $.ajax({
            url: "{{ url_for('encode') }}",
            type: 'POST',
            data: formData,
            async: false,
            success: function (data) {
                $("#img-2").attr("src", "{{url_for('static', filename='encoded.png')}}");
                $("#diff").show();
            },
            cache: false,
            contentType: false,
            processData: false
            });

        });
});
Run Code Online (Sandbox Code Playgroud)

当按钮被点击时,这个烧瓶函数就会运行。

@app.route('/encode', methods=['GET', 'POST'])
def encode():
    a = request.form['text']
    img = request.files['files']
    img.save("./static/original.png")
    secret = lsb.hide(img, a)
    secret.save("./static/encoded.png")
    return "ok"
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是网页会在一瞬间变成,因为它应该设置图像并显示按钮差异。但在那之后网页重新加载并重置为索引页面。我真的不知道如何防止这种情况发生。我究竟做错了什么?

Jer*_*lle 5

盲目猜测:您button可能是表单的一部分,因此单击时它的默认行为是提交表单并重新加载页面。您可以通过使用来防止这种情况event.preventDefault()

$('#left').bind('click', function(event) {
    event.preventDefault()
    ......
Run Code Online (Sandbox Code Playgroud)