如何在url javascript中传递"问号"

Amb*_*Amb 40 javascript angularjs

在Angularjs app中,我有一个像url的网址
http://url.com/my_app/#/store/items.
现在我想追加查询字符串,例如,
http://url.com/my_app/#/store/items?page=2.

但是在url中,javascript会编码"?" to "%3F"我不想要的内容.它应该保持"?" 只有在url中,angularjs $ location.search()才会为"%3F"返回任何内容.

怎么做?

pko*_*rce 82

您的问题中没有足够的详细信息,因此我假设您在非HTML5模式下使用AngularJS路由 - 或者至少是$ location服务.如果是这样,#字符后面的部分将从单页面应用程序的角度表示您的URL(此处有关于AngularJS的更多信息).

如果上述假设是正确的,则意味着您不应尝试"手动"添加或操纵问号.相反,你应该改变search的部分$location来操纵查询字符串(后部分?)和问号将被添加/根据需要去除,以最终的URL.

在你的情况下你可以写:

$location.path('/store/items').search('page', 2)
Run Code Online (Sandbox Code Playgroud)

这假设您正在操纵JavaScript中的URL,如您的问题中所述.


tox*_*xaq 24

如果您使用的是$ location服务,请$location.url('/store/items?page=2')改用.这是至少1.0.7的setter方法,并在我的1.1.5应用程序中处理.

  • 如果您拥有的是url字符串,请找出最佳答案. (2认同)