Dúvida no VRaptor

6 respostas
R

É possível acessar um método do meu controller anotado com @Post a partir de um domínio diferente do domínio da minha aplicação? Por exemplo, uma aplicação mobile realizando POST.

6 Respostas

Rafael_Guerreiro

é possível…

R

Levantei essa questão pois tenho uma aplicação num domínio X, os métodos anotados com GET eu consigo acessar tranquilamente, mas quando tento acessar os POST obtenho um Bad Server - HTTP Error.

R

Minha chamada:

$.ajax({ type : 'POST', url : 'http://ipdodominio:8080/MinhaApp/service/salvarXpto', username : 'User', password : 'pass', data : {text : varText}, beforeSend : function() { alert('antes de enviar'); }, success : function(txt) { alert('envio sucesso'); }, error : function(txt) { alert('erro envio ' + JSON.stringify(txt)); } });

A mensagem de erro:

erro envio {“readyState”:0,“status”:0,“statusText”:"[Exception… “Access to restricted URI denied” code: “1012” nsresult: “0x805303f4 (NS_ERROR_DOM_BAD_URI)” location: “http://localhost:8080/MinhaAppLocal/jqgrid4.3.2/js/jquery-1.7.2.min.js Line: 4”]"}

Meu método sendo chamado:

@Post("/service/salvarXpto") public void salvarXpto(final String text) { //Processamento... }

R

Quando faço esse POST de um form interno à aplicação, ele funciona. Será que existe alguma configuração pra liberar acesso externo?

Lucas_Cavalcanti

o Browser por padrão só deixa vc fazer requisições ajax para o mesmo domínio, por questões de segurança.

para fazer ajax para outro domínio vc pode usar JSONP (que é sempre GET) ou usar CORS (o browser manda uma requisição OPTIONS pro servidor, que tem que responder que aceita requisições ajax de outro domínio)

R

Lucas, entendi.

Então vou partir para outra abordagem.

Obrigado!

Criado 20 de maio de 2013
Ultima resposta 20 de mai. de 2013
Respostas 6
Participantes 3