В моем проекте Angular 7 я пытаюсь загрузить файл изображения вместе с другими данными формы в серверную часть Apache PHP.Используя HttpClient для выполнения запроса, POSTing только изображения само по себе работает нормально.
// 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);
}
Запрос POST никогда не выполняется из-за неудачной предварительной проверки OPTIONS, в которой сервер жалуется, что файл изображенияотсутствует в данных запроса.
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
, оба из которых также не дали мне удачи.
Когда запрос сделан в Почтальоне, он работает нормально.