簡體   English   中英

來自 API 的帶有基本身份驗證的帖子

[英]Post from API with Basic Authentication

我無法從 API 下載數據

我做錯了什么,但我不知道是什么

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json',
    'Authorization': 'Basic ' + btoa(userPassword)
  }),
  observe: 'response' as 'body'
};

@Injectable({
  providedIn: 'root'
})

export class CoverageService {
  eligibilityUrl = nepalehrUrl + 'EligibilityRequest';

  constructor(private http: HttpClient) { }

  getEligibilityData(body:object): Observable<EligibilityResponse> {
    return this.http.post<EligibilityResponse>(this.eligibilityUrl, body, httpOptions);
  }
}

我有信息:

在此處輸入圖像描述

組件中的代碼

let bodyEligibility = {
  resourceType: "EligibilityRequest",
  patient: {
      reference: "Patient/1975632"
  }
};

this.myEligibilityData$ = this.coverageService.getEligibilityData(bodyEligibility);

console.log(JSON.stringify(this.myEligibilityData$))

我做錯了什么

Observables 是惰性的,除非您訂閱它們,否則它們不會執行。

所以基本上你必須subscribe observable 才能讓 http 調用。 目前,當您執行console.log時,您可以在瀏覽器console中看到徹底的 observable 。 基本上當訂閱 function http 調用被執行並且底層subscribe function 被觸發,您可以在其中分配myEligibilityData的值

myEligibilityData;

this.coverageService.getEligibilityData(bodyEligibility).subscribe(data => {
    console.log(data);
    this.myEligibilityData = data;
});

如果您想直接在 HTML 上顯示這些數據,那么您可以保持現有代碼不變。 您不必subscribe observable,而是在 HTML 上使用async pipe,它將負責應用subscribe並從Observable提取數據。

<ng-container *ngIf="myEligibilityData$ | async as myEligibilityData">
   {{myEligibilityData | json}}
</ng-container>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM