Grazie Pietro, ho scaricato Firebug, da quello che dice il sito sembra
ottimo.
Andrea P. wrote:
se � questo il problema, credo sia normale e non ha a che fare con RJS o
prototype: la risposta in RJS ha un content-type di tipo text/javascript
di conseguenza il browser non lo esegue, bens� lo prende come un
semplcie file di testo.
Grazie Andrea,
ho passato in debug l’applicazione e facendo una brutale ricerca con
“find in files” ho trovato in prototype_helper.rb
(C:\Ruby\lib\ruby\gems\1.8\gems\actionpack-2.1.2)
module GeneratorMethods
def to_s #:nodoc:
returning javascript = @lines * $/ do
if ActionView::Base.debug_rjs
source = javascript.dup
javascript.replace " try {\n#{source}\n} catch (e) "
javascript << "{ alert('RJS error:\\n\\n' + e.toString()); alert('#{source.gsub('\\','\0\0').gsub(/\r\n|\n|\r/, "\\n").gsub(/["']/) { |m| "\\#{m}" }}'); throw e }"
end
end
end
ma anche specificando il content-type con
Mime::Type.register "application/javascript", :js, %w( application/javascript application/x-javascript )
viene sempre visualizzato come text-plain
Alessandro S. wrote:
Non mi è chara una cosa… :login lo chiami con ajax o una post normale?
- se è una post ritorna un oggetto di tipo html e quindi visto che non è
incapsulato a dovere il tuo javascript viene mostrato a video.
Grazie Alessandro,
in effetti credo che hai centrato il problema (non riesco ad essere
molto chiaro, fino a qualche mese fa non conoscevo affatto Ruby, tanto
meno Ajax), ho sostituito
<%= form_remote_tag(:url => {:controller => utente, :action => login})%>
con
e
<%= submit_tag ‘OK’ %>
con
visto che con recenti browser come Chrome o Mozzilla non effettuava
l’operazione di login, ma rimaneva completamente freezato, mentre ora
esegue il login, registra i dati utente in sessione ma non esegue il JS
di redirect alla home.