2013-05-21 8 views
5

È possibile rispondere a una richiesta HTML con javascript? Con questo intendo che non voglio che la pagina venga aggiornata e che venga eseguito anche del codice javascript. Mi chiedo se questo è possibile cambiando solo il lato server?Rispondere con javascript a una richiesta HTML?

Nella mia azione, ho qualcosa selezionati per rispondere alle js e html come questo:

respond_to do |format| 
    format.js 
    format.html 
end 

E ho un file .js.erb che, naturalmente, dovrebbe essere resa quando il browser richiede una javascript.

Questo può essere fatto? Come?

+0

sembra buono per me hai provato chiama questa strada con in js? –

+0

Cosa intendi? Ho bisogno che la richiesta richieda un 'html', e la risposta sia un' js'. – fotanus

+0

correggimi se sbaglio. Vuoi fare http://someurl.com/someroute e farlo restituire js vs doing http://someurl.com/someroute.js? –

risposta

3

Non è possibile farlo cambiando solo il codice lato server. Se desideri che javascript sia eseguito sulla risposta del server, il modulo dovrà essere inviato tramite javascript. Questo perché javascript valuterà la risposta dal server ed eseguirà il codice.

Questo può in qualche modo essere banalmente aggiunto in Rails:

<%= form_for @user, remote: true %> 

Quando si è presentata, allora si può mandare indietro javascript. Ad esempio, per avvisare che un utente è stato aggiunto:

/app/views/users/create.js.erb

alert("user <%= j @user.email %> was added"); 
+0

Grazie per la tua risposta, credo anche che non sia possibile. Se nessuno si inventasse qualcosa, accetterò la tua risposta. Capisco che sia facile, ma sto migrando da 'rjs' (ti ricordi di rjs?) A' ujs', e quindi ci sono molti posti in cui cambiare le chiamate ... – fotanus