我已经在SO上查看了类似标题的问题,但还没有找到有同样问题的人。使用jQuery,我试图在不必指定整个url
参数的情况下发出ajax请求。例如,如果我在页面www.foo.com/bar
上并且想要向www.foo.com/bar/woot
发送ajax请求,我只需将url
参数设置为/bar/woot
即可生成请求www.foo.com/bar/woot
- 听起来不错。
但是,这适用于页面bar
位于网站根目录的情况。就我而言,我在页面www.foo.com/users/1
(我正在开发一个有多个用户的RoR应用程序),并希望向www.foo.com/users/1/bar
发送请求。我认为只需将url
参数设置为bar
(前面的/
没有从根开始)就可以了,并且它排序类型< / em>的。将url
参数设置为bar
时,会向www.foo.com/users/bar
发出ajax请求(显然,省略了我希望看到的用户ID,/1/
users
和bar
)。
我还搜索了ruby-on-rails标签,并没有看到任何关于这是特定于RoR的问题。我可以通过将用户ID传递给函数并简单地将其插入到url中来解决这个问题,即`url:“/ users /”+ user_id +“/ bar”,但这很蹩脚。
对我来说奇怪的是,/1/
绝对是网址的一部分(如果我没有记错的话),而不是像#1
片段那样不属于请求 - 为什么它会被删除?
更新
有一些简单的方法可以在jQuery中完成我想要的操作,例如将url
参数更改为window.location.href()+"/bar"
,因为.href()
调用将在当前网址中包含/1/
,但是我想知道是否有关于为什么只是为bar
参数指定url
的说明不包含ajax使用的构造url中的/1/
请求。
有什么想法吗?提前谢谢!
答案 0 :(得分:0)
这样可行。
var current_href = window.location.href()
window.location.replace(current_href + '/bar')
这会加载网址www.foo.com/users/1/bar