我試圖從資源名稱串列“imagePayments”中獲取 Http 狀態我從“imagePayments”中獲取了 URL,但服務器上沒有任何上傳的影像,在我的組件類中,我從服務中獲取資料,該資料包含資訊:
界面:
export interface responseMemberObject{
infoMember: InfoMember;
url_images: UrlImages[];
images_payment: UrlImages[];
}
export interface UrlImages {
id: string;
name: string;
kind: string;
url: string;
}
組件類:
export class MyComponentClass implements OnInit {
import { HttpClient } from '@angular/common/http';
idMember:String;
auxiliarPaymentUrl: string;
responseMemberObject: ResponseMemberObject;
auxiliarBoolean: Boolean;
constructor(private http: HttpClient,
customService: CustomService){
this.activatedRoute.paramMap.subscribe((params) => {
this.idMember = params.get('idMember');
}
ngOnInit(): void {
this.loadMember();
}
loadDataMember() {
this.customService.getData(this.IdMember).subscribe((res) => {
let resStr = JSON.stringify(res);
let resJSON = JSON.parse(resStr);
this.responseMemberObject = resJSON;
this.listDocumentsMember = this.responseMemberObject.url_images;
this.imagePaymentUrl = this.responseMemberObject.images_payment[0].url; //The image URL
this.httpclient.get(this.imagePaymentUrl, { observe: 'response' })
.subscribe((response) => {
let resStr = JSON.stringify(res);
let resJSON = JSON.parse(resStr);
this.auxiliarUrl = resJSON;
console.log('response: ', response.status);
if (response.status == 404) {
this.bollean = false;
} else {
this.bollean = true;
}
console.log('Headers: ', response.headers.get('status'));
}); */
});
}
如何獲取 HttpStatus 或驗證是否存盤了影像?我嘗試了許多示例,但我遺漏了一些東西。
當影像存在時,我得到了這個
HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url:"http://server.doamain/folder/images/idMember/paymentImage/"
error: {error: SyntaxError: Unexpected token ? in JSON at position 0 at JSON.parse
或者如果影像沒有存盤在服務器中,我得到了這個:
HttpErrorResponse {headers: HttpHeaders, status: 404, statusText: "OK", url:"http://server.doamain/folder/images/idMember/paymentImage/"
uj5u.com熱心網友回復:
這將捕獲所有錯誤:
this.httpclient.get(this.imagePaymentUrl, { observe: 'response' })
.subscribe(response => {},
errors=>{});
uj5u.com熱心網友回復:
您收到第一個錯誤,因為您正在觀察回應并嘗試JSON.parse(在對其進行字串化之后..)對HttpResponse錯誤表示意外標記的.. 進行操作,因為它不是有效的 JSON。當你觀察回應時,成功的回應在里面body。您不需要決議它,Angular http-client 會處理它。
在第二個回應中,您正確地收到了 404 錯誤,但是您沒有正確處理它,實際上您根本沒有處理它!
所以你的代碼應該是這樣的(使用 rxjs 7 時)
this.httpclient.get(this.imagePaymentUrl, { observe: 'response' })
.subscribe({
next: (data) => {
console.log(data.body); // here is the actual response from server
},
error: (err) => {
console.log(err.status);
}
});
}
作為進一步的建議,我建議處理對服務的 http 呼叫,這通常是我們的做法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/394656.html
標籤:有角的 打字稿 http 角分量 角-httpclient
上一篇:在選定的網站頁面關閉以進行維護時,要發送的正確HTTP狀態代碼是什么?[復制]
下一篇:laravel,如何選擇所有值
