问题描述
我正在尝试将值从我视图中的表单传递给 formData
,但是当我传递参数时,它显示 undefined
。
// Initialize Params Object
let myFormData = new FormData();
// Begin assigning parameters
const username = myFormData.append('myUsername',this.registerForm.value.firstname);
const email = myFormData.append('myEmail',this.registerForm.value.email);
//post request
return this.http.post('http://localhost:81/save.PHP/',myFormData).subscribe((res: Response) => {
console.log(res);
},(err) =>{
this.indexedDbService
.addUser(username,email) // undefined,undefined
.then(this.backgroundSync)
.catch(console.log);
// this.backgroundSync();
})
}
但是,如果我尝试传递一个硬编码的 JSON 对象,它会正确接收。
如何将数据从 myFormData
正确传递到 addUser
的参数中?
解决方法
FormData.append
是一个空函数,因此 username
和 email
在您的代码中将始终为 undefined
。
const example = new FormData();
const voidResult = example.append('foo','bar');
console.log(voidResult) // undefined
如果您想以这种方式访问它们,则需要将它们分配给表单值。示例:
const { firstname: username,email } = this.registerForm.value;
myFormData.append('myUsername',username);
myFormData.append('myEmail',email);