我在某个绑定到IIS6 *的网站上使用旧的404重写方法。
所以如果我输入
http://example.com/non-existent/path
它会像我这样调用我的错误页面
http://example.com/catch.aspx?404;http://example.com/non-existent/path
大
除了 ,如果我使用片段调用页面,例如
http://example.com/non-existent/path#with-fragment
我得到与上面相同的结果。我无法在任何地方找到片段:
这已经出现,因为我想将AJAX创建的路径解析为服务器端版本。
我有办法从我的处理程序中检索原始路径吗?
感谢。
(*)请不要建议我换平台。显然,如果可以,我会这样做。
答案 0 :(得分:2)
不,没有。 #之后的URL部分永远不会按照HTTP规范传递给服务器。与平台无关。
要在javascript中使用#之后的信息,您应该查看Javascript History插件/功能。 jQuery有历史插件,asp.net ajax和mvc ajax(部分视图等)都有。请注意,这不是一件非常容易实现的事情,你必须进入撤销/重做心态。
如果你试图在服务器上处理404,它可能不会工作 - 服务器不知道#之后有什么东西。不知道你想做什么,404处理,还是“解决AJAX创建的路径”?究竟是什么目标?