Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Http Post

Eu gostaria de realizar uma requisição Post em minha api TomCat Java mas no body gostaria de passar como parametros x-www-form-urlencoded, o que no caso está em details. Estou fazendo coforme o exemplo a baixo, porém está me retornando erro:

 let details: any = {
            'usuario': 'lala',
            'senha': 'lala'
        };

        let formData = new FormData();

        for (var k in details) {
            formData.append(k, details[k]);
        }

        return fetch(url, {
            method: 'POST',
            headers: new Headers({
                'Content-Type': 'application/x-www-form-urlencoded',
            }),
            body: formData
        })
        .then(res => this._handleErrors(res))
        .then(res => res.json());

O erro seria:

Failed to load http://localhost:8012/Login: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 404. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. Voces poderiam me ajudar a resolver este erro?

2 respostas

Olá, Anderson.

Você está tendo um problema de cross domain. Isso acontece porque a sua API está configurada pra não responder requisição de outro domínio.

Você está usando Spring na sua API com Java?

solução!

Ah! Se você quiser pode definir a configuração de cross domain no seu tomcat, só precisar adicionar o filter abaixo:

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>