首页 > 解决方案 > 显示警报而不是重定向到内部服务器错误页面?

问题描述

有什么方法可以显示警报而不是 500 Internal Server Error 页面?我有一个预测按钮,每当我单击该按钮时,我都想显示警报,而不是将我重定向到另一个页面并显示错误。这是我的ajax请求:

$(document).ready(function() {
    $(".myButton").click(function(){
        var $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
        var canvasObj = document.getElementById("canvas");
        var img = canvasObj.toDataURL();
        $.ajax({
            type: "POST",
            url: $SCRIPT_ROOT + "/predict/",
            data: img,
            error: function(err) {
                alert('Error'+ err);
            },

            success: function(data){
                $('#result').text(' Predicted Output: '+data);
            }
        });
    });

    });

这是我的html:

 <form id="predictbutton" action="/fourthtask/predict" method="post" enctype="multipart/form-data">
                <!--        <input type="file" name="image" value="Upload">-->
                <input class="btn btn-success myButton" type="submit" value="Predict">
            </form>

我不确定我哪里出错了。我会很感激你的帮助。谢谢你。

编辑:我这样做是故意的,因为这就是该工具的工作方式,但我不想向用户显示 500 内部服务器错误页面,而是我想将其显示为警报或模式。服务器端在烧瓶中。

标签: javascriptjqueryajax

解决方案


结果显示为新页面,因为您正在提交表单。

这与请求的成功或失败无关。

表单将始终提交并始终将结果显示为新页面。

如果您想阻止它提交以便 Ajax 请求可以运行,那么您需要阻止提交按钮的默认行为:

$(".myButton").click(function(e){
    e.preventDefault();
    var $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};

推荐阅读