Tôi đang tạo ứng dụng mới có 3.0.0.beta3. Tôi chỉ đơn giản là cố gắng để làm cho một mẫu js.erb đến một yêu cầu Ajax cho các hành động sau đây (trong publications_controller.rb):Rails3 hiển thị mẫu js.erb với loại nội dung văn bản/html thay vì văn bản/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
Hiện nay, mẫu get_pubmed_data.js.erb của tôi chỉ đơn giản là
alert('<%= @publication.title %>')
các máy chủ đang phản hồi bằng sau
alert('Evidence for a herpes simplex virus-specific factor controlling the transcription of deoxypyrimidine kinase.')
đó là hoàn toàn tốt đẹp ngoại trừ việc không có gì xảy ra trong trình duyệt, có lẽ vì content-type của phản ứng là 'text/html' inst ead của 'văn bản/javascript' như được hiển thị bởi tiêu đề phản hồi được sao chép một phần tại đây:
Status 200
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html; charset=utf-8
Đây có phải là lỗi hoặc tôi thiếu gì đó không? Cảm ơn bạn đã giúp đỡ!
Làm thế nào để bạn gọi 'get_pubmed_data'? Trong Rails 3 bạn phải làm: '<% = link_to 'Bấm vào đây',: controller =>: publications,: action =>: get_pubmed_data,: remote => true%>' – Mischa
Cuộc gọi đến get_pubmed_data là tốt, được thực hiện thông qua một hàm javascript observ_field, với đúng '-Yêu cầu-Với \t XMLHttpRequest'yquest Headers – Yannis