é possível implementar um interceptor para verificar se o usuário está com o javascript ativado a cada request?
rogelgarcia
Se você está perguntando, se é impossivel implementar um interceptor que diga se a requisição veio da url, ou de um javascript… aí sim… a resposta é: impossível (se as duas forem GET)
Por isso respondi não a primeira pergunta… mas como garcia-jj sugeriu, uma reestruturação da app faz com que a requisição tenha que ser feita por código, pois não é possível enviar um comando por requisição DELETE ou POST por digitação na url do browser (pelo menos dos browsers populares)
Você continua não sabendo se veio do javascript ou url do browser… mas como esse tipo de requisição (POST) não vem da url nos browsers populares é possível chegar a um comportamento desejável.
L
lfcdtv
Só quero verificar se o javascript está ativado no browser com um interceptor.
R
Renato_Machado
garcia-jj:
Uma coisa que o Lucas da Caelum sempre me fala é para sempre que você for alterar o estado do objeto o GET não deve ser usado.
Para isso você deve anotar teu médodo com @Delete e usar um POST com o _method=DELETE.
Você pode alterar quantos objetos quiser em um método GET, o que não deve alterar é o estado do resource.
R
Renato_Machado
Lucas Emanuel:
Tenho um Controller com um método para deletar anotado com URI: /delete/id
No entanto, eu quero permitir acesso a ela somente internamente por JS, onde faço uma requisição delete.
Só configurar o AJAX com o header User-agent e fazer a verificação do mesmo no lado servidor.
Oi Renato, deixa ver se entendi. Seria mais ou menos assim:
No meu JS:
//Ajax para deletar o registro selecionado$.ajax({beforeSend:function(xhr){xhr.setRequestHeader("Ajax","ajax");},type:"DELETE",url:$(this).attr("href")});