Connection_reset requisição
09/03/2016 16:40
0
Estimados,
  Estou com um problema chato aqui e não creio ser especificamente o grails o problema, mas espero que me ajudem.
  Tenho um backend em grails 2.3.6 com WS REST. Instalamos o plugin do CORS e o front web e o app android (nativo) utilizam este backend sem problemas.
  Agora estamos desenvolvendo as outras plataformas web (WP e IOS) com o ionicframework, ok, tudo legal até a hora que mandamos rodar no smartphone. Abaixo uma request header de uma requisição feita no ionic rodando no browser (no ionic é possível dar "run" no smartphone ou no browser):
    Host: myhost:8080
    Connection: keep-alive
    Access-Control-Request-Method: POST
    Origin: http://localhost:8100
    User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36
    Access-Control-Request-Headers: accept, content-type
    Accept: */*
    Referer: http://localhost:8100/
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: en-US,en;q=0.8,pt-BR;q=0.6,pt;q=0.4 ?

A requisição é recebida e respondida sem problemas.

Agora o mesmo código do ionic sendo executado no smartphone não funciona. Abaixo uma request header de uma requisição feita no mesmo código rodando no smartphone:
! Provisional headers are shown
Accept:application/json, text/plain, */*
Content-Type:application/json;charset=UTF-8
Origin:file://
User-Agent:Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5 Build/MMB29Q; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/48.0.2564.106 Mobile Safari/537.36 ? ? ?

no console é exibido:  net::ERR_CONNECTION_RESET

pesquisando na net fala-se muito de problema com cross-origin, mas esse problema de cross-origin nos tivemos muito tempo atrás, no início da aplicação e foi resolvido (tanto é que o front web e o android nativo estão consultando esse backend sem problemas), então, não sei se é realmente a configuração do CORS.
Uma coisa estranha é que rodando no smartphone o cabeçalho "origin" da requisição fica "file://" e não o IP do dispositivo, vi que isso é um problema em alguns casos.
Achei um post dizendo que usando o tomcat 8 este problema não ocorreria, mas baixei o tomcat 8, coloquei o backend nele e deu na mesma.

alguma ideia do que possa vir a ser?
Tags: CORS, IONIC


0
Mais informações sobre este problema:
  Quando mandamos uma 2° requisição (idêntica a que deu erro) o problema não ocorre;
  Acho que este problema foi resolvido mandando uma requisição com method "OPTIONS" como é feito no browser, mas não consegui fazer isso na webview do app;
  Testando em casa em uma rede diferente da rede da empresa o problema não ocorre.
10/03/2016 10:04



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto