Access-Control-Allow-Origin

530 views
Skip to first unread message

Fabio Ebner

unread,
Mar 24, 2014, 3:01:01 PM3/24/14
to Vraptor
Pessoal. como eu faco para adicionar  Access-Control-Allow-Origin no cabecalho retorno?? 

obrigado

Denilson Telaroli

unread,
Mar 24, 2014, 3:03:56 PM3/24/14
to caelum-...@googlegroups.com
Você pode adicionar o filter CORS ao projeto:
http://software.dzhuvinov.com/cors-filter-installation.html

Lembre-se que o CORS só serve em browsers modernos.
Nos IEs é desativado por padrão.


Abraço,
Denilson Telaroli.


2014-03-24 16:01 GMT-03:00 Fabio Ebner <fabio...@gmail.com>:
Pessoal. como eu faco para adicionar  Access-Control-Allow-Origin no cabecalho retorno?? 

obrigado

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/d/optout.

Fabio Ebner

unread,
Mar 24, 2014, 3:34:53 PM3/24/14
to Vraptor
Sabe se o tal do P3P funciona??

Denilson Telaroli

unread,
Mar 24, 2014, 3:37:12 PM3/24/14
to caelum-...@googlegroups.com

Não sei, mas como isso abre brecha de segurança se for mal configurado talvez não. Pesquisa ou testa diretamente.

Fabio Ebner

unread,
Mar 24, 2014, 3:39:26 PM3/24/14
to Vraptor
Abandonda esse P3P entendi ele diferente.. 

e qual a diferenca do CORS para o Allow-Control?

Denilson Telaroli

unread,
Mar 24, 2014, 3:47:06 PM3/24/14
to caelum-...@googlegroups.com
CORS é uma especificação
Allow-control é um header

http://pt.wikipedia.org/wiki/Cross-origin_resource_sharing


Abraço,
Denilson Telaroli.

Rafael Dipold

unread,
Mar 25, 2014, 12:46:14 PM3/25/14
to caelum-...@googlegroups.com

Denilson Telaroli

unread,
Mar 25, 2014, 12:56:33 PM3/25/14
to caelum-...@googlegroups.com
É uma estratégia mais fácil que só funciona no vraptor, mas como não conhecia, quando precisei usei o cors-filter e não tive problemas.
Se reparar as dúvidas não eram apenas sobre a adição do header também.


Abraço,
Denilson Telaroli.


2014-03-25 13:46 GMT-03:00 Rafael Dipold <dip...@gmail.com>:

--

Fabio Ebner

unread,
Mar 25, 2014, 1:54:07 PM3/25/14
to Vraptor
Denilson, vc chegou a implementar esse CORS FILTER? eu estou tentando , fiz as configuracoes igual esta no site, mas nao estou notando nenhuma diferenca no meu header.. 

tem como vc me dar uma ajudar?

obrigado

Fabio Ebner

unread,
Mar 25, 2014, 2:12:01 PM3/25/14
to Vraptor
Coloquei assim no meu WEB.xml
Esse e o retorno sem o CORs:

  • Content-Type →
    application/json;charset=UTF-8
  • Date →
    Tue, 25 Mar 2014 18:10:31 GMT
  • Server →
    Apache-Coyote/1.1
  • Transfer-Encoding →
    chunked


dai coloquei no web.xml
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
    <param-name>cors.allowOrigin</param-name>
        <param-value>http://www.integrabrasil.com.br</param-value>
    </init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


esse e o retorno sem o Cors:

  • Content-Type →
    application/json;charset=UTF-8
  • Date →
    Tue, 25 Mar 2014 18:11:47 GMT
  • Server →
    Apache-Coyote/1.1
  • Transfer-Encoding →
    chunked

Denilson Telaroli

unread,
Mar 25, 2014, 2:24:11 PM3/25/14
to caelum-...@googlegroups.com
Configura o allowOrigin pra * pra testar se funciona, pode ser que o filter não está registrando correto.

Não prefere tentar a opção que o Dipold sugeriu?


Abraço,
Denilson Telaroli.

Fabio Ebner

unread,
Mar 25, 2014, 2:37:17 PM3/25/14
to Vraptor
entao eu tentei mas acho que nao esta funcionando, estou usando o Vraptor 4 RC1 e ele nao deu resultado tbm..


Fabio Ebner

unread,
Mar 25, 2014, 2:38:04 PM3/25/14
to Vraptor
mais uma duvida se eu utilizar a solucao dele em uma versao que funcione, eu vou conseguir utilizar todos os verbos do http?

PUT, DELETE, GET e etc?

Fabio Ebner

unread,
Mar 25, 2014, 2:39:20 PM3/25/14
to Vraptor
Outra coisa nao entendi mto bem aquele @options e tbm nao achei nenhum lugar na documentacao do Vraptor falando sobre, tem algum material para eu ler sobre isso

obrigado

Denilson Telaroli

unread,
Mar 25, 2014, 2:53:59 PM3/25/14
to caelum-...@googlegroups.com
Ele citou que no 4 não funciona o @Options("/*").
Já o filter é muito simples, apenas adicionar e configurar que funciona.
Habilita os debugs do log pra ver se está dando erro.


Abraço,
Denilson Telaroli.


Em 25 de março de 2014 15:37, Fabio Ebner <fabio...@gmail.com> escreveu:

Denilson Telaroli

unread,
Mar 25, 2014, 2:55:23 PM3/25/14
to caelum-...@googlegroups.com
O options é do http.
Ele é executado pelo navegador sempre antes de todo request pra verificar permissões, por exemplo.


Abraço,
Denilson Telaroli.

Fabio Ebner

unread,
Mar 25, 2014, 4:43:27 PM3/25/14
to Vraptor

então mas eu posso fazer um interceptor no 4 q acrescenta o allow em QQ requisição correto?

Denilson Telaroli

unread,
Mar 25, 2014, 5:40:51 PM3/25/14
to caelum-...@googlegroups.com
se você adicionar os headers corretamente vai funcionar também.
aí precisa implementar corretamente a especificação.


Abraço,
Denilson Telaroli.

Rafael Dipold

unread,
Mar 26, 2014, 7:22:24 AM3/26/14
to caelum-...@googlegroups.com
Fábio fiz um gist pra vc:

Fabio Ebner

unread,
Mar 26, 2014, 7:43:19 AM3/26/14
to Vraptor
Rafael, mto obrigado, eu estava fazendo algo parecido, so tira uma duvida minha, pq vc separou em controller e interceptor? somente o interceptor nao resolveria?

o controller ele pega para qq coisa que venha apos o / ne?

mas a minha duvida foi pq dividir.

obrigado D:


2014-03-26 8:22 GMT-03:00 Rafael Dipold <dip...@gmail.com>:
Fábio fiz um gist pra vc:

--

Rafael Dipold

unread,
Mar 26, 2014, 8:13:12 AM3/26/14
to caelum-...@googlegroups.com
Isso eu expliquei no link da discussão anterior. 

Basicamente o interceptor sozinho não resolve o problema porque o VRaptor responde automaticamente a requisições HTTP OPTIONS e o Interceptor nunca é chamado. 
O controller portanto força o VRaptor a direcionar as requisições OPTIONS para ele mesmo responder.

Fabio Ebner

unread,
Mar 26, 2014, 8:34:34 AM3/26/14
to Vraptor
Rafael, eu estou fazendo uns testes aqui, e nao estou obtendo sucesso, por exemplo apos uma chamada ele me retorna o seguinte erro:  


  1. OPTIONS http://teste.lumera.com.br:9090/portalservicosback/pedidocertidao/natureza/IMOVEIS?_dc=1395837037786&page=1&start=0&limit=25 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8181' is therefore not allowed access. Connection.js?_dc=1395836645875:358
XMLHttpRequest cannot load http://teste.lumera.com.br:9090/portalservicosback/pedidocertidao/natureza/IMOVEIS?_dc=1395837037786&page=1&start=0&limit=25. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8181' is therefore not allowed access.

Coloquei um breakpoint no CORSController, e ele nao entra la, fui no meu metodo e anotei tbm com o @Options()

@Get(value = "/natureza/{nmNatureza}")
@Options(value = "/natureza/{nmNatureza}")
public void getNatureza(String nmNatureza){


ele mostra no meu console:
09:31:36,641 DEBUG [DefaultParametersControl] For /pedidocertidao/natureza/{nmNatureza} retrieved /pedidocertidao/natureza/([^/]+) with {nmNatureza=[^/]+}
09:31:36,641  INFO [DefaultRouteBuilder ] /pedidocertidao/natureza/{nmNatureza}             [GET, OPTIONS] -> PedidoCertidaoController.getNatureza(String)

mas ele nao entra em lugar nenhum.

--

Rafael Dipold

unread,
Mar 26, 2014, 8:43:46 AM3/26/14
to caelum-...@googlegroups.com
Você alterou alguma coisa no gist q te passei? Senão deveria funcionar...

Talvez que o que pode estar ocorrendo é que vc tenha algum interceptor sendo executado antes do interceptor que lhe passei.

Precisa forçar o CORSInterceptor a executar antes de todos. 

Por exemplo aqui eu precisei adicionar um (before=AuthenticationInterceptor.class) no CORSInterceptos pq eu tinha um interceptor de autenticação que estava sendo executado antes dele.

Pensando melhor.. quase certo que deve ser isso...

Fabio Ebner

unread,
Mar 26, 2014, 9:04:50 AM3/26/14
to Vraptor
Então eu nao modifiquei nada nao, e tbm nao tenho nenhum interceptor (pelo menos que eu tenha criado) rodando antes, so se for algum do proprio Vraptor, so mais uma duvida, estou usando o Vraptor 4 RC1. sabe se tem alguma problema com essa verisao?


--

Rafael Dipold

unread,
Mar 26, 2014, 9:29:34 AM3/26/14
to caelum-...@googlegroups.com
N tem problema com essa versão..  tenho mais de um projeto aqui e apenas precisei adicionar esses dois arquivos no meu projeto...

Essa sua URI em específico não está dando algum erro mesmo quando não é chamada via CORS?

Denilson Telaroli

unread,
Mar 26, 2014, 9:31:29 AM3/26/14
to caelum-...@googlegroups.com
Fabio,

Cria um novo projeto blank e adiciona apenas um controller pra teste e a questão do cors.
Pode ser algo nesta sua app, assim você exclui problemas externos.

Fala também como você está acessando, lado cliente e lado servidor (url, plataforma, etc)


Abraço,
Denilson Telaroli.


2014-03-26 10:29 GMT-03:00 Rafael Dipold <dip...@gmail.com>:
N tem problema com essa versão..  tenho mais de um projeto aqui e apenas precisei adicionar esses dois arquivos no meu projeto...

Essa sua URI em específico não está dando algum erro mesmo quando não é chamada via CORS?

--

Fabio Ebner

unread,
Mar 26, 2014, 10:44:29 AM3/26/14
to Vraptor
Consegui

precisei adicionar X-Requested-With, na linha, pois e um problema do chrome.

result.use(Results.status()).header("Access-Control-Allow-Headers", "Content-Type, X-Requested-With, accept, Authorization, origin");


obrigado

Leandro Monqueiro Leme

unread,
Sep 29, 2014, 9:31:07 PM9/29/14
to caelum-...@googlegroups.com
Eu estou com o mesmo problema, já tentei colocar o cors no web.xml conforme o link 

http://www.guj.com.br/29384-vraptor-e-restangular-no-access-control-allow-origin-header-is-present-on-the-requested-resource

Eu tentei implementar o código abaixo, do Rafael, com vraptor 3.5.3, e dá o seguinte erro : 

http status 405
The specified HTTP method is not allowed for the requested resource (). 


CORSController.java

@Resource
public class CORSController {
private final Result result;
private final Router router;
private final RequestInfo requestInfo;

public CORSController(Result result, Router router, RequestInfo requestInfo) {
this.result = result;
this.router = router;
this.requestInfo = requestInfo;
}
@Options @Path("/*")
public void options() {
Set<HttpMethod> allowed = router.allowedMethodsFor(requestInfo.getRequestedUri());
      result.use(Results.status()).header("Allow", allowed.toString().replaceAll("\\[|\\]", ""));        
      result.use(Results.status()).header("Access-Control-Allow-Origin", "*");        
      result.use(Results.status()).header("Access-Control-Allow-Methods", allowed.toString().replaceAll("\\[|\\]", ""));        
      result.use(Results.status()).header("Access-Control-Allow-Headers", "Content-Type, accept, authorization, origin");        
      result.use(Results.status()).noContent();

Fabio Ebner

unread,
Sep 30, 2014, 3:35:25 PM9/30/14
to Vraptor
Leandro..
Eu utilizo o V4, e tenho essas duas classes 

@Controller
public class CORSController {
 
@Inject private Result result;
@Inject private Router router;
 
@Options("/*")
public void options(@Observes VRaptorRequestStarted requestInfo) {
Set<HttpMethod> allowed = router.allowedMethodsFor(requestInfo.getRequest().getRequestedUri());
String allowMethods = allowed.toString().replaceAll("\\[|\\]", "");
result.use(Results.status()).header("Allow", allowMethods);
result.use(Results.status()).header("Access-Control-Allow-Methods", allowMethods);
result.use(Results.status()).header("Access-Control-Allow-Headers", "Content-Type, X-Requested-With, accept, Authorization, origin");
}
}

@Intercepts
public class CORSInterceptor {
@Inject private Result result;
@Inject private HttpServletRequest request;
@BeforeCall
public void intercept() throws InterceptionException {
String origin = request.getHeader("origin") != null ? request.getHeader("origin") : "*";
result.use(Results.status()).header("Access-Control-Allow-Origin", origin); 
result.use(Results.status()).header("Access-Control-Allow-Credentials", "true");
    result.use(Results.status()).header("Access-Control-Expose-Headers", "Content-Type, Location");
}
}


e funciona perfeitamente..



--

Leandro Monqueiro Leme

unread,
Sep 30, 2014, 10:06:50 PM9/30/14
to caelum-...@googlegroups.com
Oi Fábio, eu não estou usando o 4 ainda, eu consegui fazer funcionar no postman, está redondinho, mas pela aplicação, usando restangular ainda está dando erro.

http://localhost:8086/modeloAServer/login

{ "id": 1, "name": "test" }

Mas pelo restangular, dá o erro do cors.

 XMLHttpRequest cannot load http://localhost:8086/modeloAServer/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8085' is therefore not allowed access. The response had HTTP status code 403.

tomcat 7.0.41.

meu web.xml está assim :

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

 <init-param>
    <param-name>cors.allowed.methods</param-name>
    <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
  </init-param>    
</filter>
               

  <filter>

    <filter-name>vraptor</filter-name>
    <filter-class>br.com.caelum.vraptor.VRaptor</filter-class>

  </filter>  

<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>    


  <filter-mapping>
    <filter-name>vraptor</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>

  </filter-mapping>






Otávio Garcia

unread,
Sep 30, 2014, 10:14:15 PM9/30/14
to caelum-...@googlegroups.com
Tente colocar o filter do cors antes do filter do vraptor.

Leandro Monqueiro Leme

unread,
Oct 1, 2014, 12:49:12 PM10/1/14
to caelum-...@googlegroups.com
Mudei o CORS, estou usando outro, mas mesmo assim não dá certo, pelo postman vai, mas pela aplicação não vai.

<filter>

<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>    

<init-param>
    <param-name>cors.allowOrigin</param-name>
    <param-value>*</param-value>
</init-param>
<init-param>
    <param-name>cors.supportsCredentials</param-name>
    <param-value>false</param-value>
</init-param>
<init-param>
    <param-name>cors.supportedHeaders</param-name>
    <param-value>accept, authorization, origin</param-value>
</init-param>
<init-param>
    <param-name>cors.supportedMethods</param-name>
    <param-value>GET, POST, HEAD, OPTIONS, PUT, DELETE</param-value>
</init-param>

</filter>  


<filter>
  <filter-name>vraptor</filter-name>
  <filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
</filter>  

<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>    
 </filter-mapping>


 <filter-mapping>
   <filter-name>vraptor</filter-name>
   <url-pattern>/*</url-pattern>
   <dispatcher>FORWARD</dispatcher>
   <dispatcher>REQUEST</dispatcher>

 </filter-mapping>

Otávio Garcia

unread,
Oct 1, 2014, 1:01:33 PM10/1/14
to caelum-...@googlegroups.com

Essa requisição que retorna 505, você faz como?

Se você faz pelo browser ele envia apenas get ou post. E teu método está anotado com options.

405 indica que a URL requisitada não suporta o verbo usado no request. Isso não tem a ver com cors.

Otávio Garcia

unread,
Oct 1, 2014, 1:06:19 PM10/1/14
to caelum-...@googlegroups.com

No primeiro parágrafo eu quis dizer 405. Coisas do corretor ortográfico do celular :)

Leandro Monqueiro Leme

unread,
Oct 1, 2014, 1:14:31 PM10/1/14
to caelum-...@googlegroups.com
Desculpe Otávio, mas esse erro deu quando tentei colocar o código do Fábio, com vraptor 3.5.3, e deu aquele erro. .Eu desisti do código, infelizmente não consegui implementar. 

Eu acabei de colocar um post no stack com dados mais recentes até onde consegui chegar. Fiz um código mais simples, e pelo postman vai todas as requisições, GET, POST, DELETE E PUT, mas pela aplicação, restangular, não está rolando, da o erro.

Se puder fazer a gentileza de dar uma olhada, eu agradeço.

Leandro Monqueiro Leme

unread,
Oct 2, 2014, 9:01:58 AM10/2/14
to caelum-...@googlegroups.com
Alguém consegue me responder se esse post, que coloquei no stack, pode ser problema da parte do back ou do front ?

Leandro Monqueiro Leme

unread,
Oct 3, 2014, 7:05:44 AM10/3/14
to caelum-...@googlegroups.com
Descobri que o problema é no back-end mesmo, então vou esquecer a parte do restangular e focar no vraptor.

Não consegui implementar o código do Rafael mesmo. Tem alguma coisa que da o erro e não consigo entender.

A configuração do CORS, no xml não é suficiente porque ? Pq ele não manda na requisição o Allow-origins : * quando é DELETE ?



Otávio Garcia

unread,
Oct 3, 2014, 8:15:20 AM10/3/14
to caelum-...@googlegroups.com

Se pelo Postman funciona, mas pelo restangular não, acredito que o problema não possa ser no backend.

Tente pegar os envelopes de request e response, e veja se os headers estão sendo enviados e recebidos corretamente.

Assim podemos entender o que o restangular está fazendo de errado.

Leandro Monqueiro Leme

unread,
Oct 5, 2014, 6:58:15 PM10/5/14
to caelum-...@googlegroups.com
Oi Otávio, tudo bem, resolvi tirar todo o código de CORS do web.xml, pra começar do zero

O server e o front são separados

Quando eu faço o login pelo postman, retorna 200 e traz o usuário logado, pelo sistema tb retorna 200, como abaixo, porém, no console já da o erro.

eu tenho um interceptor assim :

package br.com.modeloAServer.online.interceptor;

import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Intercepts;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.resource.ResourceMethod;
import javax.servlet.http.HttpServletResponse;

@Intercepts
public class NoCacheInterceptor
    implements Interceptor {

    private final HttpServletResponse response;

    public NoCacheInterceptor(HttpServletResponse response) {
        this.response = response;
    }

        public boolean accepts(ResourceMethod method) {
        return true; // allow all requests
    }
    
    @Override
    public void intercept(InterceptorStack stack, ResourceMethod method,
                Object resourceInstance)
        throws InterceptionException {

        response.setHeader("Expires", "Wed, 31 Dec 1969 21:00:00 GMT");

        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");

        response.addHeader("Cache-Control", "post-check=0, pre-check=0");

        response.setHeader("Pragma", "no-cache");
        
        response.addHeader("Access-Control-Allow-Origin", "*");                        
        response.addHeader("Access-Control-Allow-Headers", "Authorization, Content-Type");                
        response.addHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, PUT, PATCH");                

        
        response.addHeader("P3P","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

        stack.next(method, resourceInstance);
    }
}


indexController

package br.com.modeloAServer.online.controlador;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.com.caelum.vraptor.view.Results;
import br.com.modeloAServer.online.business.LoginBusiness;
import br.com.modeloAServer.online.dominio.Logado;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;


@Resource
public class IndexController {

    private Result result;
    private HttpServletRequest request;  
    private LoginBusiness business;
    
    public IndexController( Result result, HttpServletRequest request, LoginBusiness business) {
        this.result = result;
        this.request = request;
        this.business = business;
    }
    
    @Get("/login")
    public void login() throws SQLException {
        
        String codigo = request.getHeader("Authorization");
                
        String dados[] = codigo.split(":");            
        String usuario = dados[0];
        String senha = dados[1];
        
        Logado user = business.autenticar(usuario, senha);

        if (user == null) {

            result.use(Results.http()).setStatusCode(401);                    
            result.use(Results.representation()).from(new ValidationMessage("O usuário não está autorizado a realizar essa operação", "HTTP 403")).serialize();  
            
        } else {
            result.use(Results.json()).withoutRoot().from(user).serialize(); 
        }
        
    }

    
}

Angular

app.config(function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
});

app.config(['RestangularProvider',function(RestangularProvider) {
RestangularProvider.setBaseUrl('http://localhost:8086/modeloAServer');
            
RestangularProvider.setDefaultHeaders({
            'Content-Type':'application/json'
        });
        
}]);


Headers
  1. Remote Address:
    [::1]:8086
  2. Request URL:
  3. Request Method:
    OPTIONS
  4. Status Code:
    200 OK
  5. Request Headersview source
    1. Accept:
      */*
    2. Accept-Encoding:
      gzip, deflate, sdch
    3. Accept-Language:
      pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
    4. Access-Control-Request-Headers:
      accept, authorization
    5. Access-Control-Request-Method:
      GET
    6. Connection:
      keep-alive
    7. Host:
      localhost:8086
    8. Origin:
    9. Referer:
    10. User-Agent:
      Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.7 Safari/537.36
  6. Response Headersview source
    1. Allow:
      GET
    2. Content-Length:
      0
    3. Date:
      Sun, 05 Oct 2014 22:39:51 GMT
    4. Server:
      Apache-Coyote/1.1

Console

 XMLHttpRequest cannot load http://localhost:8086/modeloAServer/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8085' is therefore not allowed access.


Não sei se tem a ver, mas mesmo fazendo no mesmo servidor, eu estou tentando fazer um upload pelo vraptor e deu http://www.guj.com.br/29933-vraptor-uploadedfile-405-method-not-allowed.

Obrigado pela ajuda.

Leandro Monqueiro Leme

unread,
Oct 6, 2014, 7:45:16 PM10/6/14
to caelum-...@googlegroups.com
Olá Otavio, o link do guj, do upload, eu resolvi, comi bola, por favor desconsiderar, já coloquei a resposta lá.


Reply all
Reply to author
Forward
0 new messages