Я посмотрел на многие другие ответы на этот вопрос, и ни один из них не работает для меня.
Учитывая эту форму:
<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'
.
Ответ сервера:
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
работает правильно, по крайней мере, иногда.Хуже всего то, что это ИСПОЛЬЗУЕТСЯ до того, как я внесу некоторые изменения, и отмена этих изменений не устранила проблему.