我正在审查一些代码,我看到这样的事情:
if (result.indexOf('?') === -1) {
result += '?';
}
result += '&' + SOMETHING;
Run Code Online (Sandbox Code Playgroud)
显然,这可能会产生类似http://example.com?&a=b的网址
代码的作者在代码中没有看到任何异常但是?并且困扰我.我在RFC中找不到任何限制来证明他的错误(或者我错过了它).
这样的URL应该打扰我还是我只是偏执狂?
这种情况将被大多数服务器解释为空值,所以是的,它确实有效.将要发生的是服务器在之间?
和之间进行检查&
,然后相应地分离值=
.
因此,当a ?
和a &
(或两个&
)之间没有任何内容时,这些值都将为空.丢失=
将影响值是""还是null,但不会使查询无效.
请注意这一点,因为一些解析器可能不会发现它有效,因此在使用自定义解析器时可能会遇到问题(例如在JavaScript中).
归档时间: |
|
查看次数: |
139 次 |
最近记录: |