我继承了我们前开发人员的一些代码,并且找到了这段代码。
<?php
if($this->loginAction->isAuthenticated()){
?>
<script type="text/javascript">
window.parent.location.href="https:/home";
</script>
<?php
}
?>
我已经看了一段时间了,但我不知道他为什么把 URL 的快捷方式放在那里。我认为网址应该是https://mysite.com/home 。我基本上不知道这段代码是做什么的。
编辑:我知道如果用户经过身份验证,此代码会重定向,但我不知道奇怪的 URL(https:/home) 在那里做什么。该代码正在运行。
感谢您的帮助。
Edit2: 据我同事说,这是 JS 的 secret 之一:) 去测试一下。这两行代码应该具有相同的功能:
window.parent.location.href="https:/home";
window.parent.location.href="https://www.my-testing.com/home";
最佳答案
这是 URI,根据此处的规范它是有效的:https://www.ietf.org/rfc/rfc2396.txt在此处引用的第 3 节中:(粗体和突出显示是我的)这表示方案 https 后跟分隔符冒号 : 然后其余部分是可选的。因此,单个正斜杠可能被解释为“https://home”的根或“完整”URI,或者只是当前提供程序的“/home”。如果您的站点是 www.example.com(它不是,但该名称也在规范中作为保留名称),那么这可能看起来像“https://www.example.com/home ”,它是您站点的 DNS 地址。请注意,如果该方案缺少“//www.ourbug.net”,那么它将被转换为当前使用的方案(大多数资源为 http 或 https)
引用自引用文献:
<强>3。 URI 语法组件
URI 语法取决于方案。一般来说,绝对 URI写法如下:
<scheme>:<scheme-specific-part>
绝对 URI 包含正在使用的方案的名称 () 后跟一个冒号(“:”),然后是一个字符串(the ),其解释取决于方案。
URI 语法不要求特定于方案的部分具有 任何通用的结构或语义集 URI。然而,URI 的一个子集确实共享一个通用语法: 表示命名空间内的层次关系。 这个 “通用 URI”语法由四个主要组成部分组成:
<scheme>://<authority><path>?<query>
除了 之外,每个特定 URI 中都可能不存在。 例如,某些 URI 方案不允许使用组件, 而其他人则不使用组件。
absoluteURI = scheme ":" ( hier_part | opaque_part )
本质上是分层的 URI 使用斜杠“/”字符 分离分层组件。对于某些文件系统,“/” 字符(用于表示 URI 的层次结构)是 用于构造文件名层次结构的分隔符,以及 URI 路径看起来类似于文件路径名。这并不意味着 资源是一个文件或者 URI 映射到实际文件系统 路径名。
hier_part = ( net_path | abs_path ) [ "?" query ]
net_path = "//" authority [ abs_path ]
abs_path = "/" path_segments"
关于javascript - 旧代码 : window. Parent.location.href ="https:/home",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279097/