Javascript HTTP post将null追加到请求数据

Javascript HTTP post将null追加到请求数据,javascript,laravel-5.2,ionic3,Javascript,Laravel 5.2,Ionic3,我有来自表单的数据,使用 我将表单值发送到HTTP post方法,如下所示 myFunction(formData){ let headers = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded', }); return new Promise( resolve => { this.http.post(this.my_api, formData, { h

我有来自表单的数据,使用

我将表单值发送到HTTP post方法,如下所示

myFunction(formData){
   let headers = new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded',
    });
    return new Promise( resolve => {
      this.http.post(this.my_api, formData, { headers: headers})
        .subscribe( data => {
          resolve(data);
        });
    });
}
当我控制台form.data时,我得到

{name:'myname',address:'myaddress'}

但是 我在api中得到的是

{{“name”:“myname”,“address”:“myaddress”}:null}

这使得我很难在后端获取值

p.S.我使用Laravel作为后端

为什么:null被追加到请求中?
如何在Laravel后端获取值?

您必须对表单数据进行编码,然后将其发送到API调用

 getFormUrlEncoded(formData) {
        const formBody = [];
        for (const property in toConvert) {
            const encodedKey = encodeURIComponent(property);
            const encodedValue = encodeURIComponent(toConvert[property]);
            formBody.push(encodedKey + '=' + encodedValue);
        }
        return formBody.join('&');
    }
然后调用函数

this.http.post(this.my_api, this.getFormUrlEncoded(formData), { headers: headers})
        .subscribe( data => {
          resolve(data);
        });
    });