簡體   English   中英

盡管有XMLHttRequest錯誤,但Angular2發布請求

[英]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.

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