繁体   English   中英

将 JSON 转换为 multipart/form-data angular/ionic

[英]convert JSON to multipart/form-data angular/ionic

当我发送 POST 请求表格 POSTMAN 并得到正确的响应

这是 Postman POST 的 Form-Data Body 请求。

端点: https://cholas.in/wp-json/digits/v1/send_otp

当我使用表单数据请求时成功响应

当我从 POSTMAN 发送 POST 请求并得到错误的响应

JSON 车身要求

Content-Type : multipart/form-data;

当我从 POSTMAN 发送 POST 请求并得到错误的响应时

内容类型:multipart/form-data; header 与 json 主体:

内容类型:多部分/表单数据;带有 json 正文的标头

Angular 和 IONIC 代码当我发送帖子请求时

    const formData = new FormData();
    let httpOptions = {
        headers: new HttpHeaders({
            'Content-Type': 'multipart/form-data; charset=UTF-8'
        })
    };
  
    
    formData.append('countrycode',this.formSMS.countrycode);
    formData.append('mobileNo',this.formSMS.mobileNo);
    formData.append('type',this.formSMS.type);
    formData.append('whatsapp',this.formSMS.whatsapp);
    // rest data to the form.
    //Object.keys(restObj).forEach(key => {
    //  formData.append(key, restObj[key]);
    //});
    console.log(formData);
    // Send it.
    return this.http.post(Url, formData, httpOptions)
      .toPromise()
      .catch((e) => {
          console.log(e);
        // handle me
      });

但是我得到了我不想要的错误响应。

我不想要的角度/离子错误响应

注意:OTP 提供者文档注意:请求应作为正文中的 POST 参数发送

IONIC/ANGULAR/POSTMAN(JSON 类型)中的正确方法是什么,以得到我作为 POSTMAN 第一个屏幕截图的正确响应?

您不需要在发布数据中传递 httpOptions,因为您正在传递表单数据 angular 将为您处理

const formData = new FormData();
    let httpOptions = {
        headers: new HttpHeaders({
            'Content-Type': 'multipart/form-data; charset=UTF-8'
        })
    };
  
    
    formData.append('countrycode',this.formSMS.countrycode);
    formData.append('mobileNo',this.formSMS.mobileNo);
    formData.append('type',this.formSMS.type);
    formData.append('whatsapp',this.formSMS.whatsapp);
    // rest data to the form.
    //Object.keys(restObj).forEach(key => {
    //  formData.append(key, restObj[key]);
    //});
    console.log(formData);
    // Send it.
    return this.http.post(Url, formData)
      .toPromise()
      .catch((e) => {
          console.log(e);
        // handle me
      });

下面stackbliz包含解决方案请参考https://stackblitz.com/edit/angular-http-get-examples-f28x9u?file=app%2Fapp.component.ts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM