2017-04-03 7 views
1

Mit einem seltsamen Problem versucht, Suchergebnisse über AJAX in Schienen in diesem Schienen laden ist Laden der js.erb in einem <pre> Tag im Rohtext auf der Seite und keine fire js in diesem Datei.js.erb Rendern von Text nicht JS

in index Controller

if request.format.js? 
    respond_to do |format| 
     format.js { render layout: false } 
    end 
    end 

Formsatz AJAX mit Fern abzufeuern: 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' } 

In Routen habe ich versucht, js aus dem Formular zu erzwingen, wie zuvor es JSON war, aber keinen Unterschied macht. Aus den Protokollen wird der Controller die js Anforderung empfängt, aber ich bekommen dies in Chrom Debugger:

(index):69 Resource interpreted as Document but transferred with MIME type text/javascript: "http://localhost:3000/search". 

ein alert("Js is working") Arbeiten ohne Probleme Haften so JS ist und Brennen

stecken Im, diese Arbeit sollte Ist es jetzt etwas Dummes, das ich vermisst habe, oder etwas Neues in Rails 5, von dem ich nichts weiß?

Wenn ich weitere Informationen zur Verfügung stellen kann, um Ihnen zu helfen, mich zu halfen, bitte fragen Sie einfach!

Vielen Dank im Voraus

Antwort

0

OK dann. Gutmütig: Wahr ist nicht genug, wie es scheint! Es scheint, die Ajax-Anfrage an den Controller zu senden, aber der Controller wird festgestellt, dass es sich um Text handelt.

Zugabe

jQuery -> 
    $('#form').on "change", -> 
    $.ajax '/properties/index', 
    type: 'GET' 
    dataType: 'script' 
    data: $('form').serialize() 

und hyjacking die Form in reines Ajax einreichen schien alles zu fix!