gpt4 book ai didi

javascript - Rails 中的 j 函数有什么作用?

转载 作者:IT王子 更新时间:2023-10-29 03:00:02 25 4
gpt4 key购买 nike

我刚看到一篇博客提到 Rails 中的 j 函数。他们用它来进行 ajax 样式的页面更新。

$('#cart').html("<%=j render @cart %>");

我知道他们正在使用部分来呈现 cart 部分,但是 j 有什么意义?我发现一些文章说它将字符串转换为 JavaScript 可以接受的内容,但这是什么意思?

最佳答案

Peter 实际上发布了正确答案。但我会尝试详细说明:

我想您熟悉 ajax 的基本概念吧?假设您希望能够以 Ajaxy 方式创建评论。在 Rails 中,您可以通过以下方式在 CommentsController 中响应 POST 请求:

def create
@comment = Comment.new(params[:comment])
respond_to do |format|
render.js
end
end

这意味着如果来自客户端的 ajax 请求(通过 jquery/javascript)提交给 CommentsController,它将识别格式 (.js) 并用 _create.js.erb 部分响应。partial 然后会用这样的东西呈现新评论:

$('.comments').append("<%=j render @comment %>");

现在开始使用 j 或 escape_javascript 方法:某些邪恶用户可能会提交包含(恶意)javascript 的评论,该评论将在您的页面上执行,除非您使用 j 方法,该方法

Escapes carriage returns and single and double quotes for JavaScript segments.

因此阻止了浏览器中代码的执行。

关于javascript - Rails 中的 j 函数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12518526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com