Хост и порт дублируются в запросе http.get - PullRequest
0 голосов
/ 26 октября 2019

У меня есть некоторый Angular-код, который пытается использовать веб-API, настроенный локально с помощью маршрутизатора Express. Маршрутизатор слушает http://localhost:5000/api/products.. Я могу убедиться, что этот URL правильный, так как я могу проверить с помощью Postman, и я получаю правильные результаты. Теперь, когда я пытаюсь использовать этот же URL в службе Angular, например:

public ProductList(): Observable<Product[]> {
    const url = `${this.env.apiBase}/api/products/`;
    return this.http.get<Product[]>(url).pipe(
        tap((data) => console.log(`Product List: ${data.length}`)),
        catchError(this.handleError)
    );
}
private handleError(err: HttpErrorResponse): ObservableInput<any> {
    let errorMessage = '';
    if (err.error instanceof ErrorEvent) {
        errorMessage = `An error occurred: ${err.error.message}`;
    } else {
        errorMessage = `Server returned code ${err.status}, error message is ${err.message}`;
    }
    console.error(errorMessage);
    return throwError(errorMessage);
}

Проблема, похоже, связана со строкой return this.http.get<Product[]>(url).pipe(. Я подтвердил, что URL-адрес http://localhost:5000/api/products, как и ожидалось. Но я получаю 404 в обработчике ошибок, указывая, что http://localhost:4200/localhost:5000/api/products не найден. Почему «localhost: 4200» добавляется в URL? Как я могу предотвратить это?

1 Ответ

0 голосов
/ 27 октября 2019

Если посмотреть ближе, то оказалось, что это опечатка.

...