我发送带有提交表单的角度的POST请求。 我有选项输入字段,当我在那里输入内容并删除它然后在我的请求中我有这个字段包含“”。 这应该是怎么回事?
这就是我的表格外观:
<label class="col-md-2 col-xs-2 my-label" for="contactFirstName">Imię</label>
<div class="col-md-3 col-xs-3">
<input type="text" class="form-control" id="contactFirstName" name="contactFirstName"
placeholder="Imię"
ng-model="loan.newLoan.contactPerson.firstName" >
</div>
这就是我发送请求的方式:
function create() {
return RequestFactory.save({id1:'loans', id2:'create'},vm.newLoan,
function () {
MessageFactory.setSuccess({show:true, msg:'success'});
$state.reload('loan.new');
}, function(response){
vm.isError = true;
ErrorFactory.errorHandler(vm.errorMessages, response);
});
}
发送时,在我的请求中,带有此字段的json看起来像这样:
{"firstName":""}
可以吗?或者如果请求中的该字段为空,则该字段不应该存在? 我该怎么办?
答案 0 :(得分:1)
可以吗?
是或否,取决于您的后端服务的期望。
您可以通过执行类似
的操作删除Angular中的空字段function create() {
var data = {};
if (vm.newLoan.contactPerson.firstName) {
data.firstName = vm.newLoan.contactPerson.firstName;
}
RequestFactory.save({ id1: 'loans', id2: 'create' }, data, ...);
}
如果您不想保存空字段,则应在后端服务中进行补充检查以删除空字段。永远不要相信从客户端发送的数据,即使您使用JavaScript验证数据也是如此。务必在服务器代码中进行额外检查。
答案 1 :(得分:1)
因此,您的html输入字段不是必需的,它非常精细。希望您的支持服务也是一个可选字段。如果它是必填字段,那么当您按下{{1}时,您必须按如下所示进行检查}按钮。
这只是一个例子:
<强> HTML 强>
Save
<强> JS 强>
<button type="submit" class="btn btn-primary blue" ng-
click="vm.save(yourFormName.$valid)"> Save</button>