Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript在头文件中重定向是否被认为是不好的做法?_Javascript_Jquery_Html_Html Head - Fatal编程技术网

使用Javascript在头文件中重定向是否被认为是不好的做法?

使用Javascript在头文件中重定向是否被认为是不好的做法?,javascript,jquery,html,html-head,Javascript,Jquery,Html,Html Head,让我们假设我加载了一个过滤页面,并且基于先前设置的cookie,我希望通过向url添加一些查询参数来重新加载页面。 大概是这样的: <head> <script> if (need_to_load_with_different_params) { window.location.href = window.location.href + params_from_cookie; } </scrip

让我们假设我加载了一个过滤页面,并且基于先前设置的cookie,我希望通过向url添加一些查询参数来重新加载页面。 大概是这样的:

<head>
    <script>
        if (need_to_load_with_different_params) {
            window.location.href = window.location.href + params_from_cookie;
        }
    </script>
</head>

如果(需要使用不同的参数加载){
window.location.href=window.location.href+params\u from\u cookie;
}
我不记得见过使用这种模式的web应用程序。有什么好的理由吗? 我是否应该千方百计将这种逻辑转移到服务器端


(使用
jquery.cookie
来简化cookie读取,如果这有什么不同的话)

正如@Rory McCrossan所评论的,最好在服务器端执行此操作

原因如下:

  • 用户可能已禁用JavaScript
  • 导航将感觉非常混乱(在实际拥有整个页面之前,客户端请求->服务器响应->JavaScript解析->客户端请求->服务器响应->HTML解析)


原始答案:不应将其视为安全的:在任何情况下,页面的其余内容将由用户下载(如果禁用JavaScript,则不会发生重定向)

您可能会看到FOUC,但该代码没有问题。如果可能的话,最好在服务器端这样做。谢谢@Rorymcrossanm,你是对的,我是在服务器端这样做的。为了让任何人都能回答你的问题,你首先必须解释在这种情况下“危险”是什么意思。我更新了我的问题,它仍然被认为不清楚吗?不太清楚,因为它是广义的。我可以写一本关于“安全问题、维护问题、用户接受问题”的书。具体来说,是什么让它不安全?当然,用户可以在重定向触发之前看到内容,但这怎么不安全呢?如果主体中的内容不应该被未经授权的用户访问(如果验证是在JS中进行的)。考虑到这个问题的变化,我的答案现在已经无关紧要了