[英]Angular2 post request despite a XMLHttRequest error
我向遠程API發送請求。 API需要一些時間才能繼續進行。
稍等片刻之后,我可以在網絡選項卡中看到HTTP200。在響應中,我獲得了正確的預期信息。 API方面的一切工作正常。
在控制台上的BIT,我可以看到我遇到了XMLHttpRequest錯誤。
為什么,特別是如果我遇到XMLHttpRequest錯誤,為什么POST完成200? 它不應該被Angular2“阻止”嗎?
意外的結果是: 我的文件已正確由API上載並處理,但是在Angular2中,它觸發了我的call的ERROR部分 。
例如,如果我使用https://resttesttest.com/ ,它似乎會遇到相同的錯誤,但不會完成POST:
不好了! Javascript返回了HTTP 0錯誤。 發生這種情況的一個常見原因是您從服務器請求了跨域資源,該資源未在響應中包含適當的CORS標頭。
此調用的Angular 2代碼
this.http
.post(this.documentUploadAPIUrl, formData, options)
.subscribe(
res => {
this.responseData = res.json();
console.log(this.responseData);
console.log('Uploaded a blob or file!');
},
error => {
console.log('Upload failed! Error:', error);
}
);
嘗試將xmlHttpRequest的withCredential屬性設置為true,這將發送由瀏覽器管理的憑據,在angular 2中,您可以這樣做
import { RequestOptions } from '@angular/http';
this.http
.post(this.documentUploadAPIUrl, formData, this.post_options)
.subscribe(
res => {
this.responseData = res.json();
console.log(this.responseData);
console.log('Uploaded a blob or file!');
},
error => {
console.log('Upload failed! Error:', error);
}
);
post_options() {
return new RequestOptions({ method: 'post', withCredentials : true });
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.