使用Javascript在头文件中重定向是否被认为是不好的做法?
让我们假设我加载了一个过滤页面,并且基于先前设置的cookie,我希望通过向url添加一些查询参数来重新加载页面。 大概是这样的:使用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
<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中进行的)。考虑到这个问题的变化,我的答案现在已经无关紧要了