2017-08-17 53 views
2

我想基於角2角2不設置內容類型爲「多/表單數據」,而是「應用/ JSON的」

我有一個離子移動項目上傳文件一個至少有3個字段(_id,類型和文件)的FormData對象。

this.formData = new FormData(); 
if (fileCount > 0) { // a file was selected 
    for (let i = 0; i < fileCount; i++) { 
    this.formData.append('file', inputEl.files.item(i)); 
    } 
} 

[... in the upload method I pass this.formData as files ...] 

files.append('_id', data._id); 
files.append('tipo', tipo); 

我將它傳遞給我的上傳方法,我設置的 「內容類型」 爲 '多/表單數據'

let options: RequestOptionsArgs = new RequestOptions(); 
options.headers = this.headers; (In this.headers I have my Authorization header set) 
options.headers.delete('Content-Type'); 
options.headers.set('Content-Type', 'multipart/form-data'); 

我做一個HTTP POST

this.http.post(
    `${this.apiUrl}/utenti/upload`, 
    files, 
    options 
) 

但我收到服務器的不良響應:

Sorry, an error occurred loading the page (500) 
Unexpected token - 

我看看Chrome的網絡選項卡,我可以看到我的請求頭是錯誤的:

Content-Type: application/json 

在另一方面我的有效載荷是一個表單數據樣式正確:

------WebKitFormBoundaryKiWq1WTTF3AJCFRX 
Content-Disposition: form-data; name="file"; filename="IMG_0001.JPG" 
Content-Type: image/jpeg 


------WebKitFormBoundaryKiWq1WTTF3AJCFRX 
Content-Disposition: form-data; name="_id" 

58e7b968bed0575e13efc63c 
------WebKitFormBoundaryKiWq1WTTF3AJCFRX 
Content-Disposition: form-data; name="tipo" 

foto 
------WebKitFormBoundaryKiWq1WTTF3AJCFRX-- 

任何猜這裏有什麼問題?

回答

0

如果你已經實現了一個攔截器,檢查你是不是覆蓋頭。

相關問題