406 Errore non accettabile su jQuery: Remote => True Link
-
29-10-2019 - |
Domanda
Sto inviando una richiesta di eliminazione tramite un collegamento a tag di ancoraggio e usando: remote => True per inviarlo tramite JS per utilizzare jQuery. L'ho fatto in altri due casi che sono identici a questo, senza alcun problema. Ma per qualche motivo, questo sta causando problemi, ogni volta che mi sottopongo ricevo un errore non accettabile 406.
il collegamento di distruzione
content_tag( :p, link_to("+#{vote.weight}", unvote_path(vote), :method => :delete, :remote => true ), :class => "chosen" )
percorsi.rb
delete "/unvote" => "votes#destroy", :as => :unvote
voti_controller.rb
def destroy
@vote = Vote.find(params[:format])
if !current_user.owns(@vote)
flash[:alert] = "You cannot remove votes that aren't yours!"
end
@idea = @vote.idea
@vote.destroy
respond_with @vote do |format|
format.js
format.html { redirect_to category_idea_path(@idea.category, @idea) }
end
end
Destroy.js.erb
$('#vote_buttons').append('<%= escape_javascript get_vote_buttons(@idea.category, current_user, @idea) %>');
Questa è esattamente la stessa linea che ho new.js.erb, e questo funziona bene (a parte il fatto che non restituisce esattamente quello che voglio, ma almeno esegue e aggiunge correttamente).
applicazione.js
jQuery.ajaxSetup({
'beforeSend': function(xhr) {
xhr.setRequestHeader("Accept", "text/javascript");
},
cache: false
});
E l'ho preso dentro applicazione.js che dovrebbe essere impostato correttamente le intestazioni, se capisco bene.
Inoltre, si prega di notare che il collegamento esegue correttamente la sua funzionalità di eliminazione: quando aggiorno manualmente la pagina, il voto è stato eliminato. L'unico problema sembra essere con il contenuto restituito da Destroy.js.erb
Qualche idea sul perché si comporta in modo diverso con gli altri miei esempi di lavoro? Ho battuto la testa contro questo tutto il giorno e non riesco a capirlo.
Nessuna soluzione corretta