Ich baue eine neue App mit 3.0.0.beta3. Ich versuche einfach eine js.erb Vorlage einer Ajax-Anforderung für die folgende Aktion (in publications_controller.rb) zu machen:Rails3 rendert eine js.erb Vorlage mit einem text/html Inhaltstyp anstelle von text/javascript
def get_pubmed_data
entry = Bio::PubMed.query(params[:pmid])# searches PubMed and get entry
@publication = Bio::MEDLINE.new(entry) # creates Bio::MEDLINE object from entry text
flash[:warning] = "No publication found."if @publication.title.blank? and @publication.authors.blank? and @publication.journal.blank?
respond_to do |format|
format.js
end
end
Derzeit meine get_pubmed_data.js.erb Vorlage ist einfach
alert('<%= @publication.title %>')
der Server antwortet mit den folgenden
alert('Evidence for a herpes simplex virus-specific factor controlling the transcription of deoxypyrimidine kinase.')
, die völlig in Ordnung ist, außer, dass nichts im Browser passieren, wahrscheinlich, weil die Content-Type der Antwort ist ‚text/html‘ inst ead von ‚text/javascript‘, wie durch die Antwort-Header gezeigt teilweise hier wiedergegeben:
Status 200
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html; charset=utf-8
Ist das ein Bug oder bin ich etwas fehlt? Danke für Ihre Hilfe!
Wie nennt man 'get_pubmed_data'? In Rails 3 müssen Sie folgendes tun: '<% = link_to 'Klicken Sie hier',: controller =>: publications,: action =>: get_pubmed_data,: remote => true%>' – Mischa
Der Aufruf von get_pubmed_data ist in Ordnung eine JavaScript-Funktion observe_field, mit der richtigen '-Requested-With \t XMLHttpRequest'request Header – Yannis