遗留代码:window.parent.location.href =“HTTPS:/家”(Legac

2019-10-18 12:25发布

我从我们以前的开发继承了一些代码,我发现这段代码。

<?php
   if($this->loginAction->isAuthenticated()){
?>
   <script type="text/javascript">
      window.parent.location.href="https:/home";
   </script>
<?php
}
?>

我一直在寻找上了一段时间,我不知道为什么他把那里的快捷方式的URL。 我认为,URL应该是https://mysite.com/home 。 我基本上不知道这段代码做。

编辑:我知道这个代码是重定向,如果用户进行身份验证,但我不知道是什么奇怪的网址(HTTPS:/家)是在那里做什么。 此代码工作。

感谢您的任何帮助。

EDIT2:根据我的同事,这是JS秘密:)去测试它的一个。 这个代码两行应具有相同的功能:

window.parent.location.href="https:/home";
window.parent.location.href="https://www.my-testing.com/home";

Answer 1:

这是URI,并根据此规范是有效的: https://www.ietf.org/rfc/rfc2396.txt第3节中所报的位置:(大胆和亮点是我)这是说,该方案HTTPS接着隔板冒号那么剩下的是可选的。 因此,单正斜杠可能解释为“根或“满” URI https://开头的家 ”,或仅仅是当前提供的“/家”。 很有可能在随后的样子“ https://www.example.com/home ”如果您的网站是www.example.com(它不是,但是,一个是在规格为保留的名称为好)这是DNS您的网站的地址。 请注意,如果该方案被失踪“//www.ourbug.ne​​t”那么这将被翻译成当前使用的方案(HTTP或HTTPS对大多数资源)

从参考报价:

3. URI句法成分

的URI语法取决于方案。 在一般情况下,绝对URI的写法如下:

  <scheme>:<scheme-specific-part>

绝对URI包含计划正在使用的名称()后面跟一个冒号(“:”),然后一个字符串(),其解释依赖于计划。

的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"


Answer 2:

嗯,这似乎说如果登录动作验证,那么将用户重定向到一个新的URL。

好像给我的错误。 我不相信的https:/ home是什么比一个错字多。



Answer 3:

尝试:

<script type=text/javascript>
   window.parent.location="https://www.my-testing.com/home";
</script>


文章来源: Legacy code: window.parent.location.href=“https:/home”