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

Problema ao realizar o método post do HttpClient - request indo para http://localhost:4200/http//localhost:3000/user/login

Boa noite pessoal.

Estou tendo dificuldades para enviar uma request, através do post, para o endereço http//localhost:3000 para fazer a autenticação.

Por alguma razão o sistema está concatenando o endereço da própria aplicação com o endereço da API, resultando no endereço http://localhost:4200/http//localhost:3000/user/login. Por causa disso eu estou tomando o erro 404 (not found).

Alguém poderia me dizer o que eu posso ter feito de errado?

Segue abaixo o meu auth.service:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

const API_URL = 'http//localhost:3000';

@Injectable({
  providedIn: 'root'
})
export class AuthService {

  constructor(private http: HttpClient) { }

  authenticate(userName: string, password: string) {
    return this.http.post(API_URL + '/user/login', { userName, password });
  }
}

Segue abaixo o meu signin.component:

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { AuthService } from 'src/app/core/auth.service';

@Component({
    templateUrl: './signin.component.html'
})
export class SignInComponent implements OnInit {

    private loginForm: FormGroup;

    constructor(
        private formBuilder: FormBuilder,
        private authService: AuthService) {
    }

    ngOnInit(): void {
        this.loginForm = this.formBuilder.group({
            userName: ['', Validators.required],
            password: ['', Validators.required]
        });
    }

    login() {
        console.log('Vai se autenticar');

        const userName = this.loginForm.get('userName').value;
        const password = this.loginForm.get('password').value;

        this.authService
            .authenticate(userName,password)
            .subscribe(() => {
                console.log('Autenticado com sucesso');
            },
            (erro: Error) => {
                console.log('Erro na autenticação: ' + erro.message);
                alert('Erro na autenticação. Detalhes: ' + erro.message);
                this.loginForm.reset();
            })
    }
}

Segue abaixo o meu app.routing.module (não sei se isso é relevante):

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { PhotoListComponent } from './photos/photo-list/photo-list.component';
import { PhotoFormComponent } from './photos/photo-form/photo-form.component';
import { NotFoundComponent } from './errors/not-found/not-found.component';
import { PhotoListResolver } from './photos/photo-list/photo-list.resolver';
import { SignInComponent } from './home/signin/signin.component';

const routes: Routes = [
    {
        path: '',
        component: SignInComponent
    },
    { 
        path: 'user/:userName', 
        component: PhotoListComponent,
        resolve: {
            photos: PhotoListResolver
        }
    },
    { 
        path: 'p/add', 
        component: PhotoFormComponent 
    },
    { 
        path: '**', 
        component: NotFoundComponent 
    }  
];

@NgModule({
    imports: [ 
        RouterModule.forRoot(routes) 
    ],
    exports: [ RouterModule ]
})
export class AppRoutingModule { }
3 respostas
solução!

Fala aí Maury, tudo bem? Acho que falta os dois pontos após o http no seu endereço:

'http//localhost:3000'

Tente mudar para:

'http://localhost:3000'

Pode ser que dê certo, caso não dê, a gente vai conversando.

Espero ter ajudado.

Olá Matheus!

O problema era de fato a falta dos dois pontos após o http.

Agora a requisição está indo para o endereço correto.

Obrigado pela ajuda.

Boa, fico feliz que tenha dado certo Maury.

Sempre que precisar não deixe de criar suas duvidas.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software