【问题标题】:unable to send post request using angular无法使用角度发送发布请求
【发布时间】:2019-05-07 09:24:54
【问题描述】:

我正在使用 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),);


    }

这里的multidata会有

    [["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 文件中我附加了表单数据

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

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

【问题讨论】:

标签: javascript angular typescript


【解决方案1】:

无需附加Content-Type,因为浏览器会为您处理。上次我尝试手动将其添加到我的 post 请求时,它导致我的 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),);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 2019-10-08
    相关资源
    最近更新 更多