【发布时间】:2015-07-03 12:41:46
【问题描述】:
我使用 rails 和 haml。我通过 Ajax 将数据发送到 rails 中的控制器:
$.ajax({
type: 'POST',
url: '/preview-image-upload',
processData: false,
contentType: false,
dataType : 'json',
data: data
});
然后我在控制器中执行数据并渲染js:
respond_to do |format|
if @previewupload.save
format.js
end
对象已正确保存。 .js.erb 文件也根据服务器日志正确呈现:
Rendered path/preview_image_upload.js.erb (0.2ms)
Completed 200 OK in 603ms (Views: 8.1ms | ActiveRecord: 8.5ms)
出于测试原因,我在 preview_image_upload.js.erb 文件中添加了警报:
alert("Hello World");
但什么也没发生。看起来 .js.erb 文件已渲染但未执行。
从这里尝试了解决方案: js.erb not executing javascript but is processed rails
{ render layout: false, content_type: 'text/javascript' }
但这没有用。
【问题讨论】:
-
检查 google/chrome 或 firefox 中的
net选项卡以获取来自服务器的响应。 -
FF Developer 中可见的响应是“alert("Hello World");" - 没有引发错误。
-
你能显示控制器动作的完整代码,视图吗?
-
可能是js报错无声