URL 使用 Backbone 重定向时损坏

URL mangled when redirecting with Backbone

我在使用 Backbone 路由器重定向到 URL 时看到一个奇怪的行为。

如果我尝试重定向到:

//myserver/component_issues/index?id=org.codehaus.sonar:sonarqube

...一切都很好,但是当我尝试重定向到时收到 404:

//myserver/component_issues/index?id=org.codehaus.sonar-plugins.javascript:javascript``

浏览器 JavaScript 控制台告诉我它试图打开的 URL 是:

//myserver/component_issues/index?id=org.codehaus.sonar-plugins. 

...所以它丢失了 javascript:javascript 部分。

可能发生了什么?

Backbone 删除 "javascript:" 之后(包括)的所有内容(参见 http://backbonejs.org/docs/backbone.html#section-225)。

为防止这种情况,您应该转义参数,即 url 类似于

//myserver/component_issues/index?id=org.codehaus.sonar-plugins.javascript%3Ajavascript