【发布时间】:2019-05-22 13:58:33
【问题描述】:
在我的 Angular 7 项目中,我尝试将图像文件与其他表单数据一起上传到 Apache PHP 后端。使用 HttpClient 发出请求,仅发布图像本身就可以正常工作。
// This works fine
uploadAvatar(payload: any): Observable<any> {
const formData = new FormData();
formData.set('avatar', payload.avatar);
return this.http.post(`${api_url}/user/avatar`, formData)
}
// This does not
create(payload: any): Observable<any>{
const formData = new FormData();
formData.set('title', payload.title);
formData.set('image', payload.image);
return this.http.post(`${api_url}/path/to/add`, formData);
}
由于 OPTIONS 预检失败,因此永远不会发出 POST 请求,其中服务器抱怨请求数据中缺少图像文件。
Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
我已尝试手动将标题设置为Content-Type: multipart/form-data 和Content-Type: application/x-www-form-urlencoded,但均未成功。
我曾尝试使用UrlSearchParams 和HttpParams 而不是FormData,这两种方法都没有让我走运。
当在 Postman 中发出请求时,它工作正常。
【问题讨论】:
标签: angular typescript angular-http angular-httpclient