FormData.append的参数2不是mozilla firefox中的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FormData.append的参数2不是mozilla firefox中的对象相关的知识,希望对你有一定的参考价值。

在formData.append()的帮助下将文件发送到后端(附加文档详细信息)。它在谷歌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));
    }
答案

docRefArea您将其指定为字符串。但它实际上是一个包含文件详细信息的对象。

通过将代码的第一行更改为来尝试

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

以上是关于FormData.append的参数2不是mozilla firefox中的对象的主要内容,如果未能解决你的问题,请参考以下文章

FormData发送字符串值而不是react-native中的视频文件

FormData的使用以及用ajax提交

element-ui upload上传文件并携带参数 使用formData对象

FormData使用方法详解

FormData.append("key", "value") 不起作用

formData使用append追加key/value后console为空的问题(已解决)