Аргумент 2 из FormData.append не является объектом в Mozila Firefox - PullRequest
0 голосов
/ 30 апреля 2018

отправка файла на сервер с помощью formData.append () (добавление сведений о документе). В google chrome он работает нормально. Но у меня возникла проблема в mozila и safari с этой ошибкой.

enter image description here

Сервисный код:

  manageSingleDataWithChildModel(url: string, data: any, childData: any, docRefArea: string = ''): Observable<any> {
        this._spinnerService.show();
        this.refreshSession();
        var formData: FormData = new FormData();
        formData.append('docReferenceArea', docRefArea);
        childData.forEach((data: any) => { 
            if (data.DocumentDetails != null && data.DocumentDetails.DocContent != null && data.DocumentDetails.DocContent != "") {
                data.FileIdentifier = data.DocumentDetails.FileIdentifier;
                formData.append('files', data.DocumentDetails.DocContent, data.DocumentDetails.FileIdentifier);
                data.DocumentDetails.DocContent = null;
            }
        });
        formData.append('dataModel', JSON.stringify(data));

        let headers = new Headers(
            {
                'enctype': 'multipart/form-data',
                'method': 'POST',
                'Authorization': 'Bearer ' + localStorage.getItem('BearerToken'),
            });
        let options = new RequestOptions({ headers: headers });
        return this._http.post(url, formData, options)
            .map((res: Response) => { this._spinnerService.hide(); return HttpHelper.json(res) })
            .catch(error => this.handleError(error));
    }

1 Ответ

0 голосов
/ 30 апреля 2018

docRefArea, вы указываете его как строку. Но на самом деле это объект, содержащий сведения о файле.

Попробуйте, изменив первую строку кода на

manageSingleDataWithChildModel(url: string, data: any, childData: any, docRefArea: any = ''): Observable<any> {
...