Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails3使用text/html内容类型而不是text/javascript呈现js.erb模板_Javascript_Ajax_Ruby On Rails 3_Content Type - Fatal编程技术网

Rails3使用text/html内容类型而不是text/javascript呈现js.erb模板

Rails3使用text/html内容类型而不是text/javascript呈现js.erb模板,javascript,ajax,ruby-on-rails-3,content-type,Javascript,Ajax,Ruby On Rails 3,Content Type,我正在用3.0.0.beta3构建一个新的应用程序。我只是尝试将js.erb模板呈现给Ajax请求,以执行以下操作(在publications_controller.rb中): 目前,我的get_pubmed_data.js.erb模板非常简单 alert('<%= @publication.title %>') 这很好,只是浏览器中没有发生任何事情,可能是因为响应的内容类型是“text/html”,而不是“text/javascript”,如此处部分复制的响应标题所示: Stat

我正在用3.0.0.beta3构建一个新的应用程序。我只是尝试将js.erb模板呈现给Ajax请求,以执行以下操作(在publications_controller.rb中):

目前,我的get_pubmed_data.js.erb模板非常简单

alert('<%= @publication.title %>')
这很好,只是浏览器中没有发生任何事情,可能是因为响应的内容类型是“text/html”,而不是“text/javascript”,如此处部分复制的响应标题所示:

Status 200
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html; charset=utf-8

这是一个错误还是我遗漏了什么?谢谢你的帮助

我终于能够在响应中获得正确的内容类型,方法是强制使用:

respond_to do |format|
    format.js {render :content_type => 'text/javascript'}
end

有一个类似的问题,js文件将作为文本文件加载,但最终只是我的纸条加载顺序错误

替换

<%= javascript_include_tag :all %>


还要注意的是,getscript方法

ie替换:

onClick="<%= get_pubmed_data_path(:format => :js) %>"
onClick=“:js)%>”
与:

onClick=“$.getScript(':js))%>”

对于Rails 3.1.1,我遇到了类似的问题。即使我在控制器中明确提到format.js,我的响应也会呈现为html。问题是我的资产中有jquery.js文件,并且被模板加载。jQueryRails使用它自己的jquery副本,并且由于某些原因,加载这些文件会导致rails将响应呈现为html。可能会帮助其他人解决这个问题。

我也遇到了同样的问题,结果是我在控制器上创建了一个名为content\u type的方法,该方法覆盖了默认值。

太好了,我明天将首先尝试一下……嗯,它不起作用。仍然在布局中嵌入我的js.erb模板。我唯一能看到的是您可能想要升级rails(假设您仍然使用beta3)。有了Rails 3.0.0,它对我来说很有用。祝你好运如何调用
获取公共数据
?在Rails 3中,您必须执行以下操作:
:publications,:action=>:get_pubmed_data,:remote=>true%>
调用get_pubmed_data很好,通过javascript observe_field函数完成,并使用XMLHttpRequest请求标题请求正确的
-您最终是如何解决这个问题的?我也有同样的问题,无论我加载的顺序如何,都有一些东西坏了。
<%= javascript_include_tag :all %>
<%= javascript_include_tag "jquery.min" %>
<%= javascript_include_tag "jquery-ui.min" %>
<%= javascript_include_tag "rails" %>
onClick="<%= get_pubmed_data_path(:format => :js) %>"
onClick="$.getScript('<%= escape_javascript(get_pubmed_data_path(:format => :js)) %>');"