是吗?&允许在URL中

Дам*_*чев 4 javascript url

我正在审查一些代码,我看到这样的事情:

if (result.indexOf('?') === -1) {
    result += '?';
}
result += '&' + SOMETHING;
Run Code Online (Sandbox Code Playgroud)

显然,这可能会产生类似http://example.com?&a=b的网址

代码的作者在代码中没有看到任何异常但是?并且困扰我.我在RFC中找不到任何限制来证明他的错误(或者我错过了它).

很明显,在Chrome开发工具的网络标签中,它显示为空对: 在此输入图像描述

这样的URL应该打扰我还是我只是偏执狂?

Nik*_*xDa 6

这种情况将被大多数服务器解释为空值,所以是的,它确实有效.将要发生的是服务器在之间?和之间进行检查&,然后相应地分离值=.

因此,当a ?和a &(或两个&)之间没有任何内容时,这些值都将为空.丢失=将影响值是""还是null,但不会使查询无效.

请注意这一点,因为一些解析器可能不会发现它有效,因此在使用自定义解析器时可能会遇到问题(例如在JavaScript中).