преобразовать JSON в multipart / form-data angular / ionic - PullRequest
1 голос
/ 06 августа 2020

Когда я отправляю POST-запрос, форму POSTMAN и получаю правильный ответ

Это запрос тела данных формы Postman POST.

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

Успешный ответ, когда я запрашиваю данные формы

Когда я отправляю POST-запрос от POSTMAN и получаю неверный ответ

JSON Body Request

Content-Type : multipart/form-data;

Когда я отправляю запрос POST от POSTMAN и получаю неверный ответ

Content-Type: multipart / form-data; заголовок с json телом:

Content-Type: multipart / form-data; заголовок с телом json

Angular и код IONI C при отправке почтового запроса

    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
      });

Но я получаю неправильный ответ, который мне не нужен.

angular / ioni c неправильный ответ, который мне не нужен

NB: Документация к поставщикам OTP ПРИМЕЧАНИЕ: запрос должен быть отправлен как параметры POST в теле

Что будет правильным в IONIC / ANGULAR / POSTMAN (JSON Тип) для получения правильного ответа. Ответ, что я получаю как POSTMAN первый снимок экрана?

1 Ответ

0 голосов
/ 06 августа 2020

Вам не нужно передавать 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

...