gpt4 book ai didi

javascript - Rails 渲染 js 文件但无法执行

转载 作者:行者123 更新时间:2023-11-27 23:43:57 25 4
gpt4 key购买 nike

我的 Ruby (1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]) on Rails (3.2.6) 应用程序出现问题:我需要执行 js 文件,但我只能打印它。

查看:

291             <%= form_for :change_top_ten, remote: true, url: {controller: :users, action: :change_top_ten, format: :js} do |f| %>
292 <%= f.select :status, options_for_select(@categories_and_interests, selected: "tutti"), {class: :'deafult-select'}, onchange: "this.form.submit();" %>
293 <% end %>

Controller :

1658   def change_top_ten
1659 @filter = params[:change_top_ten][:status]
1660 end

change_top_ten.js.erb

  1 alert('here');

服务器日志:

Started POST "/change_top_ten.js" for 10.0.2.2 at 2015-10-29 10:30:10 +0000
Processing by UsersController#change_top_ten as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+v0oW+p0fy9IxpfbaKTj7g9yZSzffK+SQG52Mx3vjwQ=", "change_top_ten"=>{"status"=>"prof_2"}}
User Load (56.4ms) SELECT "users".* FROM "users" WHERE "users"."has_confirmed" = 't' AND "users"."id" = ? LIMIT 1 [["id", 13]]
Rendered users/change_top_ten.js.erb (0.1ms)
Completed 200 OK in 154.7ms (Views: 34.9ms | ActiveRecord: 66.0ms)

文件呈现为 html 页面:带有“alert('here');”的空白页面印在上面。

编辑:我正在编辑问题以回复第一条评论:

application.js

  1 // This is a manifest file that'll be compiled into application.js, which will include all the files
2 // listed below.
3 //
4 // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 //
7 // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 // the compiled file.
9 //
10 // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11 // GO AFTER THE REQUIRES BELOW.
12 //
13 //# require angular
14 //= require jquery
15 //= require jquery_ujs
16 //= require jquery.countdown
17 //= require jquery.remotipart
18 //# require_tree .

导入 Jquery 是因为我还有其他调用,例如此处描述的调用,并且它们工作正常

最佳答案

好的,所以对 ajax 查询的响应不会被评估为 javascript。尝试将以下内容添加到您的 application.js 文件或在呈现表单之前将执行的位置。

$.ajax({
url: this.href,
dataType: "script",
beforeSend: function(xhr) {xhr.setRequestHeader("Accept", text/javascript");}
});

这意味着将所有 ajax 调用的数据类型设置为“脚本”,这意味着响应将被评估为 javascript。

关于javascript - Rails 渲染 js 文件但无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33411800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com