«не найдено» ошибка с настройкой прокси в Angular 6 - PullRequest
0 голосов
/ 13 сентября 2018

Я работаю с .net Core Web API + Angular 6.

Угловой порт: 4200 и порт Web API: 62633

Я хочу работать с конфигурацией прокси в Angular 6, но всегдаполучить ту же ошибку.Я прочитал ответы, связанные с этой проблемой, но я не могу найти решение.источник: https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md

proxy.conf.js

const PROXY_CONFIG = {
    "/api": {
        "target": "http://localhost:62633",
        "secure": false,
        "pathRewrite": {
            "^/api": "http://localhost:62633"
        },
    }
}
module.exports = PROXY_CONFIG;

angular.json

"architect": {
...
"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "projectname:build",
            "proxyConfig": "proxy.conf.js",
            "port": 4200
          },
          "configurations": {
            "production": {
              "browserTarget": "projectname:build:production"
            }
          }
        }...
}

account.service.ts

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

import { LoginDto } from '../../../dtos/account/accountDtos';
import { Observable } from 'rxjs';

@Injectable()
export class AccountService {
  constructor(private hC: HttpClient) { }

  login(loginModel: LoginDto): Observable<LoginDto> {
    return this.hC.post<LoginDto>('/api/login', loginModel);
  }
}

Результат в консоли:

zone.js:2969 POST http://localhost:4200/api/login 404 (Not Found)

HttpErrorResponse {headers: HttpHeaders, status: 404, statusText: "Not Found", url: "http://localhost:4200/api/login", ok: false, …}

Я так не думаю, однако, источник ошибки, может ли это быть связано с пакетами?Благодаря.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Проблема решена. Те, кто сталкивается с той же ошибкой, пожалуйста, проверьте ваш API:)

Кроме того,

PROXY_CONFIG

"pathRewrite": {
            "^/api": ""
        },

и account.service.ts

login(loginModel: LoginDto): Observable<APIResult> {
    return this.hC.post<APIResult>('/api/account/login', loginModel.toJSON());
  }
0 голосов
/ 13 сентября 2018

с использованием

return this.hC.post<LoginDto>('/api/login', loginModel);

Мне кажется, что вы делаете почтовый запрос на свой собственный угловой сервер, а не на бэкэнд. Вы уверены, что хотите этого ?, Возможно, вам нужно что-то вроде

return this.hC.post<LoginDto>(this.yourBackendUrl + '/api/login', loginModel);

настройка в вашем конструкторе

this.yourBackendUrl = this.PROXY_CONFIG["/api"]["target"]
...