社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

如何使用ajax jQuery重定向指定重定向url

user • 3 年前 • 1073 次点击  

我有一个表单,当我提交表单时,它会重定向到我从控制器指定的url(函数控制器作为动作表单)。我制作了一个函数控制器来处理表单,我有几个不同的条件,可以在提交表单时从json结果重定向2。但我希望ajax重定向到json结果中的一个重定向。

如何从json结果重定向到特定重定向?

结果是:

{"result":"ok","message":"Failed!!! ","redirect":"http:\/\/localhost\/myproject\/approval\/detail\/21?status=approve_failed"}
{"result":"ok","message":"Success!!!","redirect":"http:\/\/localhost\/myproject\/approval\/detail\/21?status=approve_success"}

这是我提交表单时重定向的方式:

var frm = $('#form-process');

frm.submit(function(e) {
    e.preventDefault();

    $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        dataType: "json",
        success: function(res) {
            if (res.result == "ok") {
                if (res.redirect) {
                    window.location.href = res.redirect;
                }
                $.notify("Success. Data saved.", "success");
                $('#modalDateEst').modal('hide');
                table.ajax.reload();
            } else {
                $.notify("System gone wrong's. Please contact Administrator", "error");
            }
        },

        error: function(data) {

        }
    });
});
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130626
 
1073 次点击  
文章 [ 1 ]  |  最新文章 3 年前
user
Reply   •   1 楼
user    3 年前

我找到了解决办法。我就是这么做的。 我在控制器中使用的函数中生成一个变量$redirect。然后我提出了一些条件。

内部条件应为:

if (//condition) {
 $arred = array(
     "result" => "ok",
     "message" => "Success!!! ",
     'redirect' => base_url(//my url for the redirect)
 );

 $redirect = $arred;
}

所以在我的函数控制器中会是这样的:

function something() {
$redirect = "";


if (//condition) {
 //do something
 $arred = array(
     "result" => "ok",
     "message" => "Success!!! ",
     'redirect' => base_url(//my url for the redirect)
 );

 $redirect = $arred;
}


if (//condition2) {
 //do something
 $arred = array(
     "result" => "ok",
     "message" => "Success!!! ",
     'redirect' => base_url(//my url for the redirect)
 );

 $redirect = $arred;
}

//make the json
echo json_encode($redirect);
}

注意:此解决方案只会使jquery重定向到最新的重定向,以填充 $redirect 变量所以,如果你有多重重定向,唯一会使用的重定向是最新的一个。在这种情况下,我只需要最新的重定向。这就是我的解决方案。