Я пытаюсь проверить вызов API. Я могу заставить его работать от POSTMAN. Когда я пытаюсь написать простое приложение Angular, чтобы получить результат, я получаю ошибки.
Если посмотреть на ошибки, кажется, что они либо добавляют localhost к реальному домену, либо отключают его, но и не учитывают параметры. Почему URL-адреса формируются по-разному в первой ошибке по сравнению со второй? Почему я получаю 404 ошибки из приложения, но URL работает в POSTMAN?
Я получаю следующие ошибки при запуске ng serve для этого приложения
GET
http://localhost:4200/subdomain.domain.com/api/api/UserAccount/FindUser?firstName=John&lastName=Doe&dob=1/1/1981&locale=en&optionEmailForTesting=
404 (не найдено)
Код сервера вернулся 404, тело было:
Cannot
GET
/subdomain.domain.com/api/api/UserAccount/FindUser
Я пытался изменить формат URL несколькими способами, но ни один из них не повлиял на конечный результат.
app.component.ts:
export class AppComponent implements OnInit {
title = 'helloWorld bro';
private apicallsService : ApiCallsService;
constructor(acs: ApiCallsService)
{
this.apicallsService = acs;
}
ngOnInit() {
this.apicallsService.FindUser().subscribe(resp => { console.log(resp); });
}
}
apicalls.service.ts:
@Injectable()
export class ApiCallsService
{
constructor(private http : HttpClient ) { }
public API_URL: string = 'subdomain.domain.com/api';
public FindUser():Observable<ResponseDTO>
{
// let mail = (optionEmailForTesting != undefined) ? optionEmailForTesting : "";
let url = this.API_URL + '/api/UserAccount/FindUser';
const params = new HttpParams()
.set('firstName', 'John')
.set('lastName', 'Doe')
.set('dob', '1/1/1981')
.set('locale', 'en')
.set('optionEmailForTesting', '')
return this.http.get<ResponseDTO>(url,{params}).pipe(
catchError(this.handleError)
)
}
}