因此,当我在Rails 4应用程序中保存记录时,会发生这种情况。以下是一些细节:
data
属性不在我的模型或应用中。form_for
(非远程)。更新的代码是标准的脚手架样板。
# PATCH/PUT /pages/1
# PATCH/PUT /pages/1.json
def update
respond_to do |format|
if @page.update(page_params)
format.html { redirect_to @page, notice: 'Page was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @page.errors, status: :unprocessable_entity }
end
end
end
有人有什么想法吗?可能是一些简单的东西,但我不能为我的生活想出这个。如果有任何其他相关信息我可以分享,请告诉我。
答案 0 :(得分:1)
在您的特定情况下(快速播放中显示的情况),Chrome认为这会带来安全风险,因为您提交的<script>
元素包含插入到网页的可呈现内容中的javascript 使用 [Rails'内置]异步javascript。
为避免这种情况,您可以:
<script>
标记,然后在保存记录之前将它们重新添加到服务器上。 答案 1 :(得分:0)
我认为这是因为您的@page show
视图正在呈现转义的HTML和Javascript。 Chrome可能具有启发式功能来分析页面并确定它是什么类型的文档。由于它可能不是以<html>
开头,因此Chrome假定它是具有data:
协议的数据文件。尝试渲染到字符串并在控制台上打印结果:
http://guides.rubyonrails.org/layouts_and_rendering.html#using-render
puts render_to_string @page
请参阅第4.1.1节http://guides.rubyonrails.org/security.html#redirection
data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K
请使用展示视图模板,展示操作和render_to_string
中的日志更新您的答案。