URL参数和骨干路由

时间:2013-07-31 18:14:32

标签: http url backbone.js

Backbone.js在哈希标记之后维护URL中的路由信息​​,例如:

http://localhost:3000#page/hardware/table/?action=details&actionTargetId=5&actionTargetName=10.3.177.185&actionTarget=host

即使路由信息的格式为?p1 = v1& p2 = v2& p3 = v3,此部分在技术上也不是url查询字符串的一部分,因为它位于哈希标记之后。

我的问题是,如果我将一个实际的查询字符串添加到我们的应用程序的URL中,如下所示:

http://localhost:3000?newparam=newvalue#page/hardware/table/?action=details&actionTargetId=5&actionTargetName=10.3.177.185&actionTarget=host

是否有可能“newparam”url参数干扰主干部分?

1 个答案:

答案 0 :(得分:0)

问题是你实际上没有创建一个合法的查询字符串。你的路线与你的参数混合。

您的示例格式为: domain ? param # route ? other params

一旦问号出现在url中,将其解释为查询字符串之后的所有内容。 (在这种情况下)甚至是你的路线。

我个人建议使用html5 pushstate。

Backbone.history.start({pushState: true})

这会给你干净的(呃)网址

http://localhost:3000/page/hardware/table/?newparam=newvalue&action=details&actionTargetId=5&actionTargetName=10.3.177.185&actionTarget=host

这将有助于您的路线不会干扰您的参数。