首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NativeScript-Angular - POST表单数据到Wordpress ContactForm7 API

NativeScript-Angular - POST表单数据到Wordpress ContactForm7 API
EN

Stack Overflow用户
提问于 2020-01-14 23:29:10
回答 1查看 262关注 0票数 0

大家好,提前感谢……我正在尝试使用Contact Form7 App来填写和提交来自Angular NativeScript应用程序的表单。我尝试过不同的解决方案,但总是得到相同的错误响应。

代码语言:javascript
复制
{"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}]}

在示例中,为了方便起见,我在正文中输入了静态值​​;(尝试1

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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)
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-01-18 06:08:27

问题出在Content-Type上。我尝试使用application/x-www-form-urlencoded,它起作用了!

代码语言:javascript
复制
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);
         });

 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59736930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档