Tyl*_*itt 50 javascript ajax ruby-on-rails partial-views
我刚刚看到一篇博客提到了jRails 中的一个函数.他们用它来做ajax风格的页面更新.
$('#cart').html("<%=j render @cart %>");
Run Code Online (Sandbox Code Playgroud)
我得到他们正在使用cart局部渲染部分,但最重要的是j什么?我发现一些文章说它将字符串转换为JavaScript会接受的内容,但这意味着什么?
wpp*_*wpp 75
彼得实际上发布了正确答案.但我会试着详细说明:
我猜你熟悉ajax的基本概念?假设您希望能够以ajaxy方式创建评论.在rails中,您可以在您的via中响应POST请求CommentsController:
def create
@comment = Comment.new(params[:comment])
respond_to do |format|
render.js
end
end
Run Code Online (Sandbox Code Playgroud)
这意味着如果来自客户端的ajax请求(通过jquery/javascript)被提交给CommentsController它,它将识别format(.js)并使用_create.js.erb partial进行响应.然后,partial将使用以下内容呈现新注释:
$('.comments').append("<%=j render @comment %>");
Run Code Online (Sandbox Code Playgroud)
现在来到j或escape_javascript方法:
一些邪恶的用户可能会提交包含(恶意)javascript的评论,这些评论将在你的页面上执行,除非你使用的j方法是
转义回车以及JavaScript段的单引号和双引号.
因此阻止了在浏览器中执行代码.
| 归档时间: |
|
| 查看次数: |
14782 次 |
| 最近记录: |