NativeScript- Angular - POST-данные для API Wordpress ContactForm7 - PullRequest
0 голосов
/ 14 января 2020

Привет всем и заранее спасибо ... Я пытаюсь использовать API Contact Form7 для заполнения и отправки формы из Angular приложения NativeScript. Я пробовал разные решения, но всегда получал одно и то же сообщение об ошибке.

{"into":"#","status":"validation_failed","message":"Oops, there seems to be some error in the fields. Check and try again, please.","invalidFields":[{"into":"span.wpcf7-form-control-wrap.nome","message":"Attention, this field is required!","idref":null},{"into":"span.wpcf7-form-control-wrap.mail","message":"Attention, this field is required!","idref":null}]}

В этом примере для удобства я ввел значения stati c в теле. Помогите мне; (попытка 1

onTappedInvia(): void {

        fetch("http://www.example.com/wp-json/contact-form-7/v1/contact-forms/{id}/feedback", {
            method: "POST",
            headers: { "Content-Type": "multipart/form-data" },
            body: JSON.stringify({
                nome: "Test API",
                mail: "test@test.test"
            })
        }).then((r) => r.json())
            .then((response) => {
                const result = response.json;
                console.log(response);
            }).catch((e) => {
                console.log(e);
            });

     }

попытка 2

deliverForm() {



        var formData: any = new FormData();
        formData.append('nome', "Test API");
        formData.append('email', "test@test.test");
        formData.append('your-message', "Test API");


        this.submitted=true;
        console.log(formData);
        this.formService.create(formData)

          .subscribe(
            data => {
                console.log('Invoice successfully uploaded');
                console.log('Error'+ JSON.stringify(data));

            },
            error => {
                console.log('Error'+ JSON.stringify(error));
            });
            console.log('USCITO');
      }

и formService


const HttpUploadOptions = {
  headers: new HttpHeaders({ "Content-Type": "multipart/form-data;" })
}

@Injectable({
  providedIn: 'root'
})
export class FormService {

  constructor(
    private HttpClient: HttpClient
  ) { }
  create(formData){
    return this.HttpClient.post('http://www.example.com/wp-json/contact-form-7/v1/contact-forms/{id}/feedback', formData, HttpUploadOptions)
  }
}

1 Ответ

0 голосов
/ 18 января 2020

Проблема была с Content-Type. я попробовал с приложением / х- www-form-urlencoded и он работает!

fetch("http:www.aficfestival.it/wp-json/contact-form-7/v1/contact-forms/5173/feedback?", {
         method: "POST",
         headers: { "Content-Type": "application/x-www-form-urlencoded" },
         body: form
     }).then((r) => r.json())
         .then((response) => {
             const result = response.json;
             console.log(response);
         }).catch((e) => {
             console.log(e);
         });

 }
...