繁体   English   中英

在Ruby中渲染香草JavaScript时出现问题

[英]Problem rendering vanilla JavaScript in Ruby

在我的控制器中,我尝试呈现原始JavaScript,但是得到了意外的结果。 这是代码

class UploadController < ApplicationController

    def index

        render :file => 'app\views\upload\uploadfile.rhtml'

    end

    def uploadFile

        render :js => "alert('Hello Rails');"

       post = DataFile.save(params[:upload])

    end

end

期望在执行post = DataFile.save(params [:upload])之前,我应该看到一个警告框,但我看到一个下载框。 可能是什么问题呢?

render :js将发送MIME类型为text/javascript浏览器将看到并尝试下载或显示它(我的浏览器Chromium将.js文件显示为纯文本。)

render :js实际上是要返回一些JavaScript,该JavaScript将由该页面上已有代码处理

本质上,您可以通过jQuery进行AJAX调用:

$.ajax({
  type: "POST",
  url: "tokens/1/destroy.js",
  data: { _method: 'DELETE', cell: dsrc.id }
});

这是我的一个项目中的一些代码。 此处,未定义dataType,因此jQuery可以智能地“猜测”返回的数据类型。 它看到它是MIME类型: text/javascript并执行它。 如果我们使用您的代码,将会导致显示警告对话框。

本质上,您需要已经加载了一个页面,并且该页面必须等待“香草JavaScript”返回。

如果您只想为该特定操作执行一些代码,则只需在模板/视图中使用javascript_tag将其包装,或包含一个外部.js文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM