繁体   English   中英

Rails 5.2.1 UJS:javascript响应正在呈现文本而不是被执行

[英]Rails 5.2.1 UJS: javascript response is rendering text instead of being executed

我查看了这个问题的许多其他答案,但没有一个对我有用。

给定这种形式:

<form data-remote="true" method="POST" accept-charset="UTF-8" action="/admin/audiences/search/industry.js">
  <div class="form-group">
    <input data-target="lookup.value" type="text" class="form-control" id="q" name="q" placeholder="Start typing to search...">
  </div>
</form>

在该字段中键入内容后按回车键将在控制台中出现以下错误: Resource interpreted as Document but transferred with MIME type text/javascript ,并且正确的javascript在浏览器中呈现为文本,而不是通过data-remote='true'预期为data-remote='true'

服务器响应为:

Started POST "/admin/audiences/search/industry.js" for 127.0.0.1 at 2018-11-19 10:29:04 -0500
Processing by Admin::AudiencesController#search as JS
  Parameters: {"q"=>"a", "type"=>"industry"}
  User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 1], ["LIMIT", 1]]
  ↳ /Users/timsullivan/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.1/lib/active_record/log_subscriber.rb:98
   (36.6ms)  SELECT DISTINCT "salesforce"."account"."industry" FROM "salesforce"."account" WHERE (industry ilike '%a%')
  ↳ app/controllers/admin/audiences_controller.rb:89
  Rendering admin/audiences/search.js.erb
  Rendered admin/audiences/search.js.erb (0.5ms)
Completed 200 OK in 90ms (Views: 12.4ms | ActiveRecord: 37.1ms)

请注意,服务器正确识别出它是一个JS请求,并正在返回JS响应,甚至浏览器也意识到它正在获得JS,它只是将其呈现为文档。

页面上的其他UJS元素都可以正常工作,仅此rails_ujs ,因此rails_ujs至少在rails_ujs可以正常工作。 最糟糕的是,此USED在我进行一些更改之前就可以工作,并且撤消这些更改并不能解决问题。

与我的许多问题一样,最近,这一问题令人尴尬:

嵌套的HTML表单:您不能拥有它们。

我的意思是,我知道这一点,但是问题中的表格是动态插入页面的,在这种情况下,它恰好属于表格。 因此,它没有被UJS正确吸引,并且根本没有AJAX发送请求。

从好的方面来说,我现在比其他凡人更了解UJS的工作原理。

暂无
暂无

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

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