这个链接是否有效?
<a href="?lang=en">eng</a>
我知道浏览器会按照预期处理它,也知道 空链接是可以的,但只指定参数是否可行?
我很好奇,因为问号(“?”)只是大多数HTTP服务器的约定(据我所知),虽然我承认它是一种盛行的约定。
所以,总结一下:
所有浏览器都会正确解释这个吗?
这在RFC中吗?
我使用这个会有麻烦吗?
更新:单击后的预期操作是将页面重定向到相同页面,但带有不同的GET参数(如上例中的“lang=en”)。
这个链接是否有效?
<a href="?lang=en">eng</a>
我知道浏览器会按照预期处理它,也知道 空链接是可以的,但只指定参数是否可行?
我很好奇,因为问号(“?”)只是大多数HTTP服务器的约定(据我所知),虽然我承认它是一种盛行的约定。
所以,总结一下:
所有浏览器都会正确解释这个吗?
这在RFC中吗?
我使用这个会有麻烦吗?
更新:单击后的预期操作是将页面重定向到相同页面,但带有不同的GET参数(如上例中的“lang=en”)。
是的,是可以这样做的。
您可以在RFC 1808 - 相对统一资源定位符中找到相关信息:
在具有良好定义的基本URL对象内
Base:<URL:http://a/b/c/d;p?q#f>
相对URL将解析如下:5.1. 标准例子
?y
=<URL:http://a/b/c/d;p?y>
RFC 3986 - 统一资源标识符(URI):通用语法重新阐述了同样的概念,并添加了更多细节,包括语法:
relative-ref = relative-part [ "?" query ] [ "#" fragment ]
relative-part = "//" authority path-abempty
/ path-absolute
/ path-noscheme
/ path-empty #; zero characters
现在,这并不意味着所有的浏览器都按照标准实现它,但看起来这应该是安全的。
是的 - 它将使用传递的参数击中当前的URL。
在您希望确保不跨越当前页面/表单边界并继续使用相同的 ActionMethod
或任何其他监听不同参数的情况下,使用它非常方便。