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--
任何猜這裏有什麼問題?