Обновлено: исправлено. Пришлось добавить к своему ответу:
.subscribe(data =>{
console.info('data is here: ', data);
});
Я прочитал целую кучу статей по этому поводу, но не могу заставить его работать.
Среда: Angular 5, серверная часть NodeJS с Express. Использование Express-FileUpload для загрузки файла.
Я попробовал свой API с этим простым HTML:
<html>
<body>
<form ref='uploadForm'
id='uploadForm'
action='http://192.168.1.20:8275/api/upload'
method='post'
encType = "multipart/form-data">
<input type = "file" name = "sampleFile" />
<input type='submit' value='Upload!' />
</form>
</body>
</html>
Я понял, что мой API работает нормально, конечная точка API прекрасно получает запрос от HTML. Вот что я пытаюсь сделать с помощью Angular:
let body = new FormData();
body.append("file", file, 'thefilename');
let options: RequestOptions = new RequestOptions();
options.headers = new Headers();
let response: Observable<Response> = this.http.post('http://192.168.1.20:8275/api/upload', body, options); //code just breaks here and exists silently
response.map(json =>{
console.info('gotcha')
}),err =>{
console.info('error: ', err);
};
Угловой код не работает. После вызова POST он прерывается и тихо завершается. В консоли ничего нет, ошибок нет. И я не могу понять почему? Я прочитал статьи и обнаружил, что нам не нужно указывать тип контента, чтобы он работал. Я тоже пробовал, но безуспешно. В чем может быть проблема?
Есть ли ошибки в консоли?
Никаких ошибок ... он просто существует ... http, который я использую, это: node_modules/@angular/http/http.d.ts
@Oo -_- oO Http устарел angular.io/api/http/Http. Было бы лучше перейти к тому, что я написал вам в первом комментарии
Конечно, @StefanosChrs, я обязательно буду использовать более новую версию. Я не использовал подписку с этим старым http, поэтому он не отправлял запрос. Мне пришлось добавить это: .subscribe (data => {console.info ('data is here:', data);});





Вы пробовали использовать стабильный HttpClient angular.io/api/common/http/HttpClient? Вот рабочий пример stackblitz.com/edit/angular-5-file-upload