gpt4 book ai didi

javascript - Rails 从 2.3 升级到 3.2 javascript 渲染为文本

转载 作者:行者123 更新时间:2023-12-01 01:47:26 25 4
gpt4 key购买 nike

最近我正在将其中一个rails应用程序从2.3版本升级到3.2版本。我注意到 html.erb 文件中编写的 javascript 存在奇怪的行为。我升级的其他应用程序以前从未发生过这种情况。

我正在升级到 ruby 1.9.3Rails 3.2.14

目前 jquery 版本是 1.4,一旦应用程序完全移植,我会将其升级到 1.9 或 1.10。

问题就在这里。每当我们在模板中编写一些 JS 并且该 JS 在某个时刻具有大于条件时,那么在此之后编写的任何 JS 代码都会在页面上呈现为文本,而不会在 firebug 中出现任何 JS 错误。我已附上屏幕截图,请查看。

当我将该 JS 代码删除到 .js 文件中时,这个问题就消失了。我认为 ERB 模板解析必须像在 Rails 2.3 应用程序中正常工作的相同代码一样。

enter image description here

在屏幕截图中,JS 代码呈现类似

" 0) jQuery("#li_" + caab_jurisdiction_name).show();..." 

它以这样的方式开始

"if (jQuery("#mortgage_product_group_econveyance_editions").attr("value").indexOf(caab_jurisdiction_value) >  0) jQuery("#li_" + caab_jurisdiction_name).show();..."

最佳答案

Rails 3.0+ 默认情况下具有 XSS 保护,而在 Rails 2.3 中,您需要使用助手 h 才能使用它。

为了避免这种情况,您可以使用 String#html_safe 或 helper raw。

您可以在这个railscasts http://railscasts.com/episodes/204-xss-protection-in-rails-3中阅读更多相关信息。 .

关于javascript - Rails 从 2.3 升级到 3.2 javascript 渲染为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292040/

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