【问题标题】:ExpressJs "window.location.href" not reloading pageExpressJs“window.location.href”没有重新加载页面
【发布时间】:2015-10-19 20:31:41
【问题描述】:

我在 nodejs 项目中使用 ExpressJs,其中视图文件的扩展名为 .ejs。

我已经编写了 Js 代码 -- 在选择框选项更改的位置我正在重新加载页面。

为了重新加载页面,我写了下面的代码

window.location.href = window.location.host.replace( /[\?#].*|$/, "/equipment/"+$('#rigSelect').val());

但它不是重新加载页面,而是使用 canceled 状态调用 ajax 操作

它在 expressjs 中不起作用——window.location.href 应该重新加载页面,但它的调用 ajax 操作。

让我知道我应该如何重新加载页面?

编辑

Html/脚本代码

<%- include header.ejs %>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type="text/javascript">
            $(function () {
                var rigRecords = [ rigRecords ]
                var rigRows = <%- JSON.stringify(rigRecords) %>

                var rigId = [ rigId ]
                var rigId = <%- JSON.stringify(rigId) %>

                    function populate(selector) {
                        $.each(rigRows, function (index, val) {
                            if(rigId == val.id){
                                $(selector).append('<option value="'+val.id+'" selected>'+val.name+'</option>');
                            }else{
                                $(selector).append('<option value="'+val.id+'">'+val.name+'</option>');
                            }
                        })
                    }

                    populate('#rigSelect');

                    var records = [ records ]
                    var rows = <%- JSON.stringify(records) %>

                    $.each(rows[0], function (index, val) {
                    //$.each(val, function (index1, val1) {
                            var newTr = '<tr><td>'+val.name+' (VP Id:'+val.viewpoint_id+')</td></tr>';
                            $('#tbl_equipment').find('.tblBody').append(newTr);
                    //})
                    });
            });
            function reloadPage(){
                //req.redirect('http://google.com');
                //window.location.reload();
                window.location.href = window.location.host.replace( /[\?#].*|$/, "/equipment/"+$('#rigSelect').val());

            }
</script>

【问题讨论】:

  • @Liam 这并不是该问题的真正副本,OP 知道 如何 进行重定向,但它似乎对他们不起作用。 FWIW window.location.href 不应该触发 AJAX 调用,对我来说听起来像是发生了其他事情。
  • 您是否考虑过使用req.renderreq.redirect?该路线将重新加载页面:expressjs.com/api.html#res.render
  • @LucasCosta 如何在客户端获取req 对象? (HTML查看页面)
  • @mujaffars 抱歉,req 用于服务器端。是否可以提供.ejs 中的相关部分(标题、选择框和js 函数)?

标签: jquery node.js express ejs


【解决方案1】:

我变了

window.location.href = window.location.host.replace( /[\?#].*|$/, "/equipment/"+$('#rigSelect').val());

window.location.href = '/equipment/'+$('#rigSelect').val();

而且它工作正常:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2015-08-28
    • 2013-07-17
    • 2021-09-12
    相关资源
    最近更新 更多