无法使用angular

时间:2019-05-07 09:24:55

标签: javascript angular typescript

我正在使用HTTP post发送表单数据,就像这样

     saveDataFile(mutlidata,id,value): Observable<Response> {

        var _url = 'http://xxxx.xxx.xxx';
        var saveDataURL = _url + '/' + id;
        var _this = this;

        let headers = new Headers();
        headers.append('Content-Type', 'multipart/form-data');
        let options = new RequestOptions({ headers: headers });
        const frmData = new FormData();
        frmData.append("file",JSON.stringify(mutlidata),'sample.json');
        frmData.append("dataCheck",value);


        return this.http.post(saveDataURL,frmData, options).pipe(
            map((res: Response) => {
                 return res;
            }),
            catchError(this.handleError),);


    }

此处多数据将具有

    [["fakepath/test1.JPG","ea305e-be9d"],["fakepath/test2.JPG","489ce580-c50e-40e6-b1ab-71c7827f636c"]]

    id will have 15asdas6asd6

    value will have  either true / false

这里没有发送我猜的表单数据,当我调试并检查frmdata以返回this.http.post(saveDataURL,frmData,options)此处是显示form.entries,值等

在sample.json文件中,我要添加formdata

frmData.append("file",JSON.stringify(mutlidata),'sample.json');

这里的文件意味着我将不得不使用该关键字将数据发送到API

1 个答案:

答案 0 :(得分:0)

由于浏览器会为您处理,因此无需附加Content-Type。我上次尝试将其手动添加到发布请求中时,导致HTTP请求失败。您只需删除部分代码即可。

saveDataFile(mutlidata,id,value): Observable<Response> {

  var _url = 'http://xxxx.xxx.xxx';
  var saveDataURL = _url + '/' + id;
  var _this = this;

  const frmData = new FormData();
  frmData.append("file",JSON.stringify(mutlidata),'sample.json');
  frmData.append("dataCheck",value);

  return this.http.post(saveDataURL, frmData, options).pipe(
    map((res: Response) => {
         return res;
    }),
    catchError(this.handleError),);
}