2010-09-26 64 views
4

的Rails应用程序3 ....我有以下的jQuery这是工作:jQuery AJAX to Rails 3,Rails中如何获取通过数据传递的变量?

$.ajax({ 
    url: '/navigations/sidenav', 
    data: "urlpath=" + urlpath, 
    success: function(e){ 
     $("#sideNav-container").slideDown("slow"); 
    } 
}); 

urlpath可以像“/”或“/项目”或“/作者的东西一样的路径。

我的问题是如何在控制器中抓取该urlpath变量,以便我可以在我的视图中使用它来确定哪些sidenav返回给用户?

谢谢

+0

是否公正? params [:urlpath] ...我需要做什么来防止SQL注入XSS等? – WozPoz 2010-09-26 21:17:15

回答

2

通过URL路径中的“数据”键散列。像这样:

$.ajax({ 
    url: '/navigations/sidenav', 
    data:{"urlpath":urlpath}, 
    success: function(e){ 
     $("#sideNav-container").slideDown("slow"); 
    } 
}); 

然后这将传递params对象中的urlpath,您可以从您的控制器访问。因此,你可以简单地做

params[:urlpath] 

,你可以让你在通过urlpath。:)

+0

有没有这方面的担忧XSS SQL注入等?因为它只需要一个参数?另外,这似乎是编码的URL,我如何在后端Rails应用程序解码它? – WozPoz 2010-09-26 21:24:22

+1

是用户输入的urlpath吗?另外,它是通过ajax发送之前进行编码的,还是一旦它到达控制器就被编码了? – pushmatrix 2010-09-26 21:36:37

+0

它不是由用户输入的,而是来自用户可以修改的浏览器URL。用户也可以发布一个无效变量来试图破解系统的权利?只是好奇,如果params安全卫士,或者如果我需要添加额外的东西? – WozPoz 2010-09-26 21:41:19