我有一个Angular Bootstrap项目-一种表单,其中包含一些字段,例如姓名,电子邮件,电话等。该表单以HTML格式编写在一个名为customer-form.component.html的文件中。提交后,将使用字段的值创建一个JSON对象,并将其显示在屏幕上。
我正在客户文件form.component.ts中编写一个HTTP POST请求。有问题的方法如下:
postProfile() {
this.httpClient.post('API server url',
{
name:this.name,
phone:this.phone,
email:this.email,
yesorno:this.yesorno
})
.subscribe(
(data:any) => {
console.log(data)
}
)}
我进行了设置,因此提交表单还将向服务器提交POST请求。我正在使用Chrome进行调试,并且在控制台中收到错误消息:
“由于以下原因,无法插入或更新客户记录:[com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:列'NAME'不能为空]“
我一次将代码更改为name:name
,然后提交通过。但是,当我在服务器中对其进行检查时,它具有一个空白名称(name:''
)以及一些true / false字段和填充数字字段。电子邮件和电话在提交中甚至没有出现,无论是空白还是其他。现在,如果我尝试使用name:name
提交内容,则该内容将被视为重复内容并且无法正常工作。无论我在提交之前填写表格的什么内容,投诉都是姓名字段为空白。
我的主要问题:是否有一种方法,最好是通过引用JSON对象,来基于输入字段准确地填充POST请求字段? JSON对象是在index.html文件中的脚本中定义/创建的。
我的第二个问题:现在到底在使用什么来填充POST请求?即使我填写了这些字段,提交时名称字段还是空白。我在customer-form.component.ts中有一个模型Customer对象(如下所示),我怀疑这是原始提交内容(名称除外)的填充方式。
model = new Customer('Harry', 11111111111111, 'pott@r', true);
请让我知道是否需要更多信息。