Я использую Angular 2. У меня есть модуль загрузки, который отлично работает с приведенным ниже кодом.Моя система отправляет файл cookie сеанса на сервер и загружает файл.
@Injectable()
export class CustomBrowserXhr extends BrowserXhr {
constructor(private service:ProgressService) {
super();
}
build(): any {
let xhr = super.build();
xhr.withCredentials = true;
return <any>(xhr);
}
}
В последнее время мне нужно было показать прогресс загрузки файла и после некоторого исследования и после этой темы Angular 2.0 Как расширитьBrowserXhr для создания индикатора выполнения? Я обновил свой CustomBrowserXhr, как показано ниже.
build(): any {
let xhr = super.build();
xhr.withCredentials = true;
xhr.upload.onprogress = (event) => {
console.log("test");
};
return <any>(xhr);
}
Теперь браузер не отправляет файл cookie сеанса на сервер при попытке загрузить файл.Мой код загрузки файла ниже.Любая идея, почему это будет?
let formData: FormData = new FormData();
formData.append('uploadFile', file, file.name);
let headers = new Headers();
headers.append('Accept', 'application/json');
let options = new RequestOptions({ headers: headers });
this._http.post(this.url, formData, options)
.map(res => res.json())
.subscribe(
data => {
this.fileLoadingFlag = false;
this.fileLoadedFlag = true;
this.fileName = data.fileName;
this.md5Hash = data.md5Hash;
this.fileNameValidator = false;
this.fileTypeValidator = true;
},
error => console.log(error)
)