【发布时间】:2017-04-03 10:58:58
【问题描述】:
在rails中尝试通过AJAX更新搜索结果时遇到一个奇怪的问题,即在页面上的原始文本中加载<pre>标签中的js.erb,而不是触发该文件中的任何js。
在索引控制器中
if request.format.js?
respond_to do |format|
format.js { render layout: false }
end
end
表单设置为使用远程触发 AJAX:true
= form_tag(search_path, id: "form", remote: true, :'data-type' => 'script') do
index.je.erb
alert('hello');
$("#results").innerHTML("<%= escape_javascript(render partial: 'results', locals: { results: @results } ) %>");
routes.rb
match 'search', to: 'properties#index', via: :post, defaults: { format: 'js' }
在路由中,我尝试从表单中强制 js,因为以前它是 JSON,但没有区别。 从日志中,控制器正在接收 js 请求,但我在 CHrome 调试器中得到了这个:
(index):69 Resource interpreted as Document but transferred with MIME type text/javascript: "http://localhost:3000/search".
粘贴alert("Js is working") 没有问题,因此 JS 在那里并触发
我卡住了,现在应该可以正常工作了,是我错过了什么愚蠢的东西,还是我不知道的 Rails 5 中的新东西?
如果我可以提供更多信息来帮助您阻止我,请尽管问!
提前致谢
【问题讨论】:
标签: javascript ajax ruby-on-rails-5